<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.nemeus.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Elc</id>
		<title>nemeuswiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.nemeus.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Elc"/>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php/Special:Contributions/Elc"/>
		<updated>2026-05-21T18:24:57Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=743</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=743"/>
				<updated>2026-03-13T09:51:55Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=RRXF (no more supported) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa™ mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa™WAN transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa™ Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa™ Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa™, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRa™WAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRa™WAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRa™WAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRa™WAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRa™WAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRa™WAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRa™WAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRa™WAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRa™WAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRa™WAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRa™WAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRa™WAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified for test purpose, SIGFOX™ recommands to use the default value 0 which corresponds to 4096.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4, RC5, RC6 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 920.800 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC5 uses 923.300 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC6 uses 865.200 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 922.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC5 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC6 uses 866.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and SIGFOX™ layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or SIGFOX™ layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRa™WAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRa™WAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRa™WAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRa™WAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=742</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=742"/>
				<updated>2026-03-13T09:43:37Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=RTXF (no more supported) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa™ mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa™WAN transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa™ Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa™ Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa™, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRa™WAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRa™WAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRa™WAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRa™WAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRa™WAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRa™WAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRa™WAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRa™WAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRa™WAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRa™WAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRa™WAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRa™WAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified for test purpose, SIGFOX™ recommands to use the default value 0 which corresponds to 4096.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4, RC5, RC6 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 920.800 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC5 uses 923.300 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC6 uses 865.200 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC5 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC6 uses 866.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and SIGFOX™ layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or SIGFOX™ layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRa™WAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRa™WAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRa™WAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRa™WAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-xx-EU_AT_Commands&amp;diff=741</id>
		<title>MM002-xx-EU AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-xx-EU_AT_Commands&amp;diff=741"/>
				<updated>2023-01-26T07:53:38Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+MAC=ON, */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API(available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API(available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network security key for MIC computation and encryptionof MAC control commands on port 0.&lt;br /&gt;
** An AES128 application security key for encryption of applicationpayloads (not required when data encryption is disabled on themodule).&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits application unique identifier.&lt;br /&gt;
** An AES128 application Key used to derive the network andapplication security keys.&lt;br /&gt;
 &lt;br /&gt;
In first software versions (before 15W40) the module generates unique identifiers and keys, these default LoRa™WAN personalization parameters are modifiable by AT commands. It allows customers to personalize their devices according to the network operator rules.&lt;br /&gt;
&lt;br /&gt;
In further software versions, modules are personalized with Nemeus OUI during production phase and they can’t be modified. In this case the device unique identifier is read-only and the AES128 keys are hidden. The application unique identifier is still modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
 &lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
Only one level can be activated at a time.&lt;br /&gt;
&lt;br /&gt;
When activating a level, a previously activated level is automatically deactivated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
When true, PHY payload is constant (no header)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SPER, === &lt;br /&gt;
This command is used to set the Packet Error Rate state and the power offset&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqcoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracoffset&amp;amp;gt; is the RSSI Power offset in LoRa (dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcoffset&amp;amp;gt; is the RSSI Power offset in Fsk and Sigfox (dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqcoffset&amp;amp;gt; is the frequency offset in Sigfox (Hz) (Available in 17w01 and newer versions)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW, === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixedlen&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SET, === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixedlen&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixedlen&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixedlen&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (ABP or OTAA, Class A or C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX2,RRX2,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=ON, === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
In master16W18_08 version, the join procedure must always be performed in class A and once the LoRaWAN session is established the host can switch the MM002 to class C by sending again the AT+MAC=ON command.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; can be 1 or 3 (default is 3 for LoRa™WAN V1.0). V1 is no more maintained.&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,3,A,1&lt;br /&gt;
 OK&lt;br /&gt;
 ...&lt;br /&gt;
 +MAC: RDEVADDR,01020304,000001&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class C with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,3,A,1&lt;br /&gt;
 OK&lt;br /&gt;
 ...&lt;br /&gt;
 +MAC: RDEVADDR,01020304,000001&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,C,1&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
 The MM002 will switch to continuous Rx after the transmission of the first uplink frame&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; can be '''V'''1 or '''V'''3 (default is 3 for LoRa™WAN V1.0).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 4 for EU433MHz, 7 for China779-787MHz, 8 is EU863-870MHz, 9 for US902-928MHz and 10 for AS923MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 or 2 for ABP and 1 for OTAA (2 means ABP, and OTAA is not supported by the module).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) which doesn’t support OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SNDBIN, === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpyload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). In unacknowledged mode nbrep is used instead (see AT+MAC=RDR command).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,1,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RCVBIN, === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SNDTXT, === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). In unacknowledged mode nbrep is used instead (see AT+MAC=RDR command).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= SNDTXT,HELLO WORLD,3,1,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RCVTXT, === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC= STOPRCV, === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SNDLCR, === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0 with &amp;amp;lt;nbrepeat&amp;amp;gt; transmissions.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RCH, === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies if unsolicited events are required (0 when not required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SCH, === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?'''''Command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbrep&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbrep&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR, === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbrep&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of repetitions for uplink transmission (applied to all channels compatible with the datarate). &amp;amp;lt;nbrep&amp;amp;gt; applies only to unconfirmed transmissions.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?'''''Command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC= STI, === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?'''''Command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SRX, === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?'''''Command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW, === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?'''''Command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
This variables are Tx/Rx counters, aggregated DC and data encryption.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SVAR, === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?'''''Command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR, === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?'''''Command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 0010203,306A0327,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 DEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read application Unique ID.&lt;br /&gt;
&lt;br /&gt;
Application UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to 0000000000000000.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
Application UID can also be modified using AT+MAC=SAPPUID,&amp;amp;lt;app_uid&amp;amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Application UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;appuid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default application UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: 0000000000000000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set application UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new application UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify application UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;amp;lt;appuid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;appuid&amp;amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPKEY ===&lt;br /&gt;
&lt;br /&gt;
Read application key.&lt;br /&gt;
&lt;br /&gt;
Application Key is coded on 16 bytes.&lt;br /&gt;
&lt;br /&gt;
The byte order is the one you can use when you to register the key at network side.&lt;br /&gt;
&lt;br /&gt;
It has been reversed compared to old AT+MAC=APPKEY response.&lt;br /&gt;
&lt;br /&gt;
This command is available only when device unique identifier is not read only.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPKEY command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the &amp;amp;lt;appkey&amp;amp;gt; in reverse order.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when device UID is writable.&lt;br /&gt;
&lt;br /&gt;
ERROR when device UID is read only.&lt;br /&gt;
&lt;br /&gt;
Application key is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;appkey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 +MAC: A8FA642E2E3245BB9B8CAC7E2456EF3C&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Old command still returns:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=APPKEY&lt;br /&gt;
 +MAC: 3CEF56247EAC8C9BBB45322E2E64FAA8&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RNSKEY ===&lt;br /&gt;
&lt;br /&gt;
Read Network Session Key.&lt;br /&gt;
&lt;br /&gt;
Network Session Key is coded on 16 bytes.&lt;br /&gt;
&lt;br /&gt;
The byte order is the one you can use when you to register the key at network side.&lt;br /&gt;
&lt;br /&gt;
It has been reversed compared to old AT+MAC=NSKEY response.&lt;br /&gt;
&lt;br /&gt;
This command is available only when device unique identifier is not read only.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=NSKEY command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the &amp;amp;lt;nskey&amp;amp;gt; in reverse order.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when device UID is writable.&lt;br /&gt;
&lt;br /&gt;
ERROR when device UID is read only.&lt;br /&gt;
&lt;br /&gt;
Network session key is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;nskey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 +MAC: A8F1642E2E32453B9B8CAC7C2456EF72&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Old command still returns:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=NSKEY&lt;br /&gt;
 +MAC: 72EF56247CAC8C9B3B45322E2E64F1A8&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPSKEY ===&lt;br /&gt;
&lt;br /&gt;
Read application session key.&lt;br /&gt;
&lt;br /&gt;
Application session key is coded on 16 bytes.&lt;br /&gt;
&lt;br /&gt;
The byte order is the one you can use when you to register the key at network side.&lt;br /&gt;
&lt;br /&gt;
It has been reversed compared to old AT+MAC=APPSKEY response.&lt;br /&gt;
&lt;br /&gt;
This command is available only when device unique identifier is not read only.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPSKEY command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the &amp;amp;lt;appskey&amp;amp;gt; in reverse order.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when device UID is writable.&lt;br /&gt;
&lt;br /&gt;
ERROR when device UID is read only.&lt;br /&gt;
&lt;br /&gt;
Application session key is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;appskey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 +MAC: A8FA672E2E4245BB9ECCCA7E64F54C38&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Old command still returns:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=APPSKEY&lt;br /&gt;
 +MAC: 384CF5647ECACC9EBB45422E2E67FAA8&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Multicast is only available from master18Wxx&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Multicast is only available from master18Wxx&amp;lt;/span&amp;gt;.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus-mm002-MASTER_NEMEUS_15W39-data-manager&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus-mm002-MASTER_NEMEUS_15W39-data-manager&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 +SF: ON,NMS-SFX-LIB-1.2,UDL1-1.6.0,000ABCDE,0123456789ABCDEF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=SNDBIN, === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested.&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=SNDBIT, === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested.&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=RREP ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;repeat&amp;amp;gt; is sent just before the solicited response OK.&lt;br /&gt;
&lt;br /&gt;
Default value is 2 repetitions.&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 +SF: 2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=SREP, === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Default value is 2 repetitions.&lt;br /&gt;
&lt;br /&gt;
OK if number of repetitions &amp;amp;lt;= 2.&lt;br /&gt;
&lt;br /&gt;
ERROR if number of repetitions &amp;amp;gt; 2.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 OK&lt;br /&gt;
 AT+SF=SREP,3&lt;br /&gt;
 ERROR&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=RTXF ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;tx_frequency&amp;amp;gt; is sent just before the solicited response OK.&lt;br /&gt;
&lt;br /&gt;
Default value is 868130000 Hz.&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 +SF: 868130000&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=STXF, === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if 863000000 &amp;amp;lt;= tx_frequency &amp;amp;lt;= 870000000.&lt;br /&gt;
&lt;br /&gt;
ERROR if tx_frequency is not in valid range.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 OK&lt;br /&gt;
 AT+SF=STXF,862200000&lt;br /&gt;
 ERROR&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=RRXF ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;rx_frequency&amp;amp;gt; is sent just before the solicited response OK.&lt;br /&gt;
&lt;br /&gt;
Default value is 869525000 Hz.&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 +SF: 869525000&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=SRXF, === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SRXF,&amp;amp;lt;rx_frequency&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if 863000000 &amp;amp;lt;= rx_frequency &amp;amp;lt;= 870000000.&lt;br /&gt;
&lt;br /&gt;
ERROR if rx_frequency is not in valid range.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 OK&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 ERROR&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=RTXP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;tx_power&amp;amp;gt; is sent just before the solicited response OK.&lt;br /&gt;
&lt;br /&gt;
Default value is 14 dBm.&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 +SF: 14&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (for test purpose) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if tx_power &amp;amp;lt;= 14 dBm.&lt;br /&gt;
&lt;br /&gt;
ERROR if tx_power &amp;amp;gt; 14 dBm.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 OK&lt;br /&gt;
 AT+SF=STXP,20&lt;br /&gt;
 ERROR&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=740</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=740"/>
				<updated>2022-11-07T16:36:44Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+RFTX=SET */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa™ mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa™WAN transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa™ Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa™ Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa™, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRa™WAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRa™WAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRa™WAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRa™WAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRa™WAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRa™WAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRa™WAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRa™WAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRa™WAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRa™WAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRa™WAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRa™WAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified for test purpose, SIGFOX™ recommands to use the default value 0 which corresponds to 4096.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4, RC5, RC6 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC5 uses 923.300 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC6 uses 865.200 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC5 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC6 uses 866.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and SIGFOX™ layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or SIGFOX™ layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRa™WAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRa™WAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRa™WAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRa™WAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=739</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=739"/>
				<updated>2022-11-07T16:36:26Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+RFTX=? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa™ mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa™WAN transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa™ Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa™ Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa™, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRa™WAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRa™WAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRa™WAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRa™WAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRa™WAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRa™WAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRa™WAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRa™WAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRa™WAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRa™WAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRa™WAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRa™WAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified for test purpose, SIGFOX™ recommands to use the default value 0 which corresponds to 4096.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4, RC5, RC6 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC5 uses 923.300 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC6 uses 865.200 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC5 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC6 uses 866.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and SIGFOX™ layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or SIGFOX™ layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRa™WAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRa™WAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRa™WAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRa™WAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-xx-EU_AT_Commands&amp;diff=738</id>
		<title>MM002-xx-EU AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-xx-EU_AT_Commands&amp;diff=738"/>
				<updated>2022-11-07T16:34:28Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+RFTX=SET, */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API(available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API(available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network security key for MIC computation and encryptionof MAC control commands on port 0.&lt;br /&gt;
** An AES128 application security key for encryption of applicationpayloads (not required when data encryption is disabled on themodule).&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits application unique identifier.&lt;br /&gt;
** An AES128 application Key used to derive the network andapplication security keys.&lt;br /&gt;
 &lt;br /&gt;
In first software versions (before 15W40) the module generates unique identifiers and keys, these default LoRa™WAN personalization parameters are modifiable by AT commands. It allows customers to personalize their devices according to the network operator rules.&lt;br /&gt;
&lt;br /&gt;
In further software versions, modules are personalized with Nemeus OUI during production phase and they can’t be modified. In this case the device unique identifier is read-only and the AES128 keys are hidden. The application unique identifier is still modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
 &lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
Only one level can be activated at a time.&lt;br /&gt;
&lt;br /&gt;
When activating a level, a previously activated level is automatically deactivated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
When true, PHY payload is constant (no header)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SPER, === &lt;br /&gt;
This command is used to set the Packet Error Rate state and the power offset&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqcoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracoffset&amp;amp;gt; is the RSSI Power offset in LoRa (dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcoffset&amp;amp;gt; is the RSSI Power offset in Fsk and Sigfox (dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqcoffset&amp;amp;gt; is the frequency offset in Sigfox (Hz) (Available in 17w01 and newer versions)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW, === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixedlen&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SET, === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixedlen&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixedlen&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixedlen&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (ABP or OTAA, Class A or C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX2,RRX2,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=ON, === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; can be 1 or 3 (default is 3 for LoRa™WAN V1.0). V1 is no more maintained.&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,3,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; can be '''V'''1 or '''V'''3 (default is 3 for LoRa™WAN V1.0).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 4 for EU433MHz, 7 for China779-787MHz, 8 is EU863-870MHz, 9 for US902-928MHz and 10 for AS923MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 or 2 for ABP and 1 for OTAA (2 means ABP, and OTAA is not supported by the module).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) which doesn’t support OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SNDBIN, === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpyload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). In unacknowledged mode nbrep is used instead (see AT+MAC=RDR command).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,1,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RCVBIN, === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SNDTXT, === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). In unacknowledged mode nbrep is used instead (see AT+MAC=RDR command).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= SNDTXT,HELLO WORLD,3,1,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RCVTXT, === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC= STOPRCV, === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SNDLCR, === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0 with &amp;amp;lt;nbrepeat&amp;amp;gt; transmissions.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RCH, === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies if unsolicited events are required (0 when not required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SCH, === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?'''''Command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbrep&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbrep&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR, === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbrep&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of repetitions for uplink transmission (applied to all channels compatible with the datarate). &amp;amp;lt;nbrep&amp;amp;gt; applies only to unconfirmed transmissions.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?'''''Command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC= STI, === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?'''''Command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SRX, === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?'''''Command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW, === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?'''''Command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
This variables are Tx/Rx counters, aggregated DC and data encryption.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SVAR, === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?'''''Command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR, === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?'''''Command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 0010203,306A0327,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 DEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read application Unique ID.&lt;br /&gt;
&lt;br /&gt;
Application UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to 0000000000000000.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
Application UID can also be modified using AT+MAC=SAPPUID,&amp;amp;lt;app_uid&amp;amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Application UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;appuid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default application UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: 0000000000000000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set application UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new application UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify application UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;amp;lt;appuid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;appuid&amp;amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPKEY ===&lt;br /&gt;
&lt;br /&gt;
Read application key.&lt;br /&gt;
&lt;br /&gt;
Application Key is coded on 16 bytes.&lt;br /&gt;
&lt;br /&gt;
The byte order is the one you can use when you to register the key at network side.&lt;br /&gt;
&lt;br /&gt;
It has been reversed compared to old AT+MAC=APPKEY response.&lt;br /&gt;
&lt;br /&gt;
This command is available only when device unique identifier is not read only.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPKEY command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the &amp;amp;lt;appkey&amp;amp;gt; in reverse order.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when device UID is writable.&lt;br /&gt;
&lt;br /&gt;
ERROR when device UID is read only.&lt;br /&gt;
&lt;br /&gt;
Application key is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;appkey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 +MAC: A8FA642E2E3245BB9B8CAC7E2456EF3C&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Old command still returns:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=APPKEY&lt;br /&gt;
 +MAC: 3CEF56247EAC8C9BBB45322E2E64FAA8&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RNSKEY ===&lt;br /&gt;
&lt;br /&gt;
Read Network Session Key.&lt;br /&gt;
&lt;br /&gt;
Network Session Key is coded on 16 bytes.&lt;br /&gt;
&lt;br /&gt;
The byte order is the one you can use when you to register the key at network side.&lt;br /&gt;
&lt;br /&gt;
It has been reversed compared to old AT+MAC=NSKEY response.&lt;br /&gt;
&lt;br /&gt;
This command is available only when device unique identifier is not read only.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=NSKEY command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the &amp;amp;lt;nskey&amp;amp;gt; in reverse order.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when device UID is writable.&lt;br /&gt;
&lt;br /&gt;
ERROR when device UID is read only.&lt;br /&gt;
&lt;br /&gt;
Network session key is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;nskey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 +MAC: A8F1642E2E32453B9B8CAC7C2456EF72&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Old command still returns:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=NSKEY&lt;br /&gt;
 +MAC: 72EF56247CAC8C9B3B45322E2E64F1A8&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPSKEY ===&lt;br /&gt;
&lt;br /&gt;
Read application session key.&lt;br /&gt;
&lt;br /&gt;
Application session key is coded on 16 bytes.&lt;br /&gt;
&lt;br /&gt;
The byte order is the one you can use when you to register the key at network side.&lt;br /&gt;
&lt;br /&gt;
It has been reversed compared to old AT+MAC=APPSKEY response.&lt;br /&gt;
&lt;br /&gt;
This command is available only when device unique identifier is not read only.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPSKEY command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the &amp;amp;lt;appskey&amp;amp;gt; in reverse order.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when device UID is writable.&lt;br /&gt;
&lt;br /&gt;
ERROR when device UID is read only.&lt;br /&gt;
&lt;br /&gt;
Application session key is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;appskey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 +MAC: A8FA672E2E4245BB9ECCCA7E64F54C38&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Old command still returns:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=APPSKEY&lt;br /&gt;
 +MAC: 384CF5647ECACC9EBB45422E2E67FAA8&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Multicast is only available from master18Wxx&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Multicast is only available from master18Wxx&amp;lt;/span&amp;gt;.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus-mm002-MASTER_NEMEUS_15W39-data-manager&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus-mm002-MASTER_NEMEUS_15W39-data-manager&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 +SF: ON,NMS-SFX-LIB-1.2,UDL1-1.6.0,000ABCDE,0123456789ABCDEF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=SNDBIN, === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested.&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=SNDBIT, === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested.&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=RREP ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;repeat&amp;amp;gt; is sent just before the solicited response OK.&lt;br /&gt;
&lt;br /&gt;
Default value is 2 repetitions.&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 +SF: 2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=SREP, === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Default value is 2 repetitions.&lt;br /&gt;
&lt;br /&gt;
OK if number of repetitions &amp;amp;lt;= 2.&lt;br /&gt;
&lt;br /&gt;
ERROR if number of repetitions &amp;amp;gt; 2.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 OK&lt;br /&gt;
 AT+SF=SREP,3&lt;br /&gt;
 ERROR&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=RTXF ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;tx_frequency&amp;amp;gt; is sent just before the solicited response OK.&lt;br /&gt;
&lt;br /&gt;
Default value is 868130000 Hz.&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 +SF: 868130000&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=STXF, === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if 863000000 &amp;amp;lt;= tx_frequency &amp;amp;lt;= 870000000.&lt;br /&gt;
&lt;br /&gt;
ERROR if tx_frequency is not in valid range.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 OK&lt;br /&gt;
 AT+SF=STXF,862200000&lt;br /&gt;
 ERROR&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=RRXF ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;rx_frequency&amp;amp;gt; is sent just before the solicited response OK.&lt;br /&gt;
&lt;br /&gt;
Default value is 869525000 Hz.&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 +SF: 869525000&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=SRXF, === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SRXF,&amp;amp;lt;rx_frequency&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if 863000000 &amp;amp;lt;= rx_frequency &amp;amp;lt;= 870000000.&lt;br /&gt;
&lt;br /&gt;
ERROR if rx_frequency is not in valid range.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 OK&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 ERROR&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=RTXP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;tx_power&amp;amp;gt; is sent just before the solicited response OK.&lt;br /&gt;
&lt;br /&gt;
Default value is 14 dBm.&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 +SF: 14&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (for test purpose) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if tx_power &amp;amp;lt;= 14 dBm.&lt;br /&gt;
&lt;br /&gt;
ERROR if tx_power &amp;amp;gt; 14 dBm.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 OK&lt;br /&gt;
 AT+SF=STXP,20&lt;br /&gt;
 ERROR&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MG003-L-EU_Configuration_Tool_Java&amp;diff=737</id>
		<title>MG003-L-EU Configuration Tool Java</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MG003-L-EU_Configuration_Tool_Java&amp;diff=737"/>
				<updated>2022-02-14T09:42:56Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* Installation / Execution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Gateways]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prerequisite ===&lt;br /&gt;
&lt;br /&gt;
Nemeus Java application to control the gateway requests that the JAVA Runtime Evaluation 8 kit is installed onto the computer. For Winodws 10, this one can be found on [https://javadl.oracle.com/webapps/download/AutoDL?BundleId=244036_89d678f2be164786b292527658ca1605 https://javadl.oracle.com/webapps/download/AutoDL?BundleId=244036_89d678f2be164786b292527658ca1605])&lt;br /&gt;
&lt;br /&gt;
=== Installation / Execution ===&lt;br /&gt;
&lt;br /&gt;
Nemeus JAVA Application is made of only one file : o_NemeusCustomerGateway.jar. This one can be put in any folder.To execute the JAVA application, the following command must be executed in a Command DOS windows in the folder in which the file is available.&lt;br /&gt;
&lt;br /&gt;
[http://store.nemeus.fr/apps/gatewayTool/v1.54/ Nemeus Java Gateway Application] Used to manage the gateway via Network interface&lt;br /&gt;
&lt;br /&gt;
 java -jar o_NemeusCustomerGateway.jar&lt;br /&gt;
&lt;br /&gt;
=== Logs ===&lt;br /&gt;
&lt;br /&gt;
During execution, the JAVA application records information in a log file which is created in same folder of the .jar file at the time this one is started. The generated log file stays the same during all the JAVa application execution. The file format is log-mgw-&amp;lt;xxxxx&amp;gt; where xxxx corresponds to the date and time of the JAVA application start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== master window ===&lt;br /&gt;
The following figure gives an overview of the JAVA application.&lt;br /&gt;
&lt;br /&gt;
[[File:Mg003-screenshot-start.png|thumb|mg003 Java screenshoot start]]&lt;br /&gt;
&lt;br /&gt;
This one is based on followings&lt;br /&gt;
# The application title and the version of application on top&lt;br /&gt;
# The Action window on the left side&lt;br /&gt;
# The configuration folder on the right side&lt;br /&gt;
# The configuration parameters in the center windows&lt;br /&gt;
# The devices configuration (LoRa WAN server configuration) at the bottom left&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MG003-L-EU_Configuration_Tool_Java&amp;diff=736</id>
		<title>MG003-L-EU Configuration Tool Java</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MG003-L-EU_Configuration_Tool_Java&amp;diff=736"/>
				<updated>2022-02-14T09:41:33Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* Prerequisite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Gateways]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prerequisite ===&lt;br /&gt;
&lt;br /&gt;
Nemeus Java application to control the gateway requests that the JAVA Runtime Evaluation 8 kit is installed onto the computer. For Winodws 10, this one can be found on [https://javadl.oracle.com/webapps/download/AutoDL?BundleId=244036_89d678f2be164786b292527658ca1605 https://javadl.oracle.com/webapps/download/AutoDL?BundleId=244036_89d678f2be164786b292527658ca1605])&lt;br /&gt;
&lt;br /&gt;
=== Installation / Execution ===&lt;br /&gt;
&lt;br /&gt;
Nemeus JAVA Application is made of only one file : o_NemeusCustomerGateway.jar. This one can be put in any folder.To execute the JAVA application, the following command must be executed in a Command DOS windows in the folder in which the file is available.&lt;br /&gt;
&lt;br /&gt;
[http://store.nemeus.fr/apps/gatewayTool/ Nemeus Java Gateway Application] Used to manage the gateway via Network interface&lt;br /&gt;
&lt;br /&gt;
 java -jar o_NemeusCustomerGateway.jar&lt;br /&gt;
&lt;br /&gt;
=== Logs ===&lt;br /&gt;
&lt;br /&gt;
During execution, the JAVA application records information in a log file which is created in same folder of the .jar file at the time this one is started. The generated log file stays the same during all the JAVa application execution. The file format is log-mgw-&amp;lt;xxxxx&amp;gt; where xxxx corresponds to the date and time of the JAVA application start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== master window ===&lt;br /&gt;
The following figure gives an overview of the JAVA application.&lt;br /&gt;
&lt;br /&gt;
[[File:Mg003-screenshot-start.png|thumb|mg003 Java screenshoot start]]&lt;br /&gt;
&lt;br /&gt;
This one is based on followings&lt;br /&gt;
# The application title and the version of application on top&lt;br /&gt;
# The Action window on the left side&lt;br /&gt;
# The configuration folder on the right side&lt;br /&gt;
# The configuration parameters in the center windows&lt;br /&gt;
# The devices configuration (LoRa WAN server configuration) at the bottom left&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MG003-L-EU_Configuration_Tool_Java&amp;diff=735</id>
		<title>MG003-L-EU Configuration Tool Java</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MG003-L-EU_Configuration_Tool_Java&amp;diff=735"/>
				<updated>2022-02-14T09:40:56Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* Prerequisite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Gateways]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prerequisite ===&lt;br /&gt;
&lt;br /&gt;
Nemeus Java application to control the gateway requests that the JAVA Runtime Evaluation 8 kit is installed onto the computer. Fro Winodws 10, this one can be found on [https://javadl.oracle.com/webapps/download/AutoDL?BundleId=244036_89d678f2be164786b292527658ca1605 https://javadl.oracle.com/webapps/download/AutoDL?BundleId=244036_89d678f2be164786b292527658ca1605])&lt;br /&gt;
&lt;br /&gt;
=== Installation / Execution ===&lt;br /&gt;
&lt;br /&gt;
Nemeus JAVA Application is made of only one file : o_NemeusCustomerGateway.jar. This one can be put in any folder.To execute the JAVA application, the following command must be executed in a Command DOS windows in the folder in which the file is available.&lt;br /&gt;
&lt;br /&gt;
[http://store.nemeus.fr/apps/gatewayTool/ Nemeus Java Gateway Application] Used to manage the gateway via Network interface&lt;br /&gt;
&lt;br /&gt;
 java -jar o_NemeusCustomerGateway.jar&lt;br /&gt;
&lt;br /&gt;
=== Logs ===&lt;br /&gt;
&lt;br /&gt;
During execution, the JAVA application records information in a log file which is created in same folder of the .jar file at the time this one is started. The generated log file stays the same during all the JAVa application execution. The file format is log-mgw-&amp;lt;xxxxx&amp;gt; where xxxx corresponds to the date and time of the JAVA application start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== master window ===&lt;br /&gt;
The following figure gives an overview of the JAVA application.&lt;br /&gt;
&lt;br /&gt;
[[File:Mg003-screenshot-start.png|thumb|mg003 Java screenshoot start]]&lt;br /&gt;
&lt;br /&gt;
This one is based on followings&lt;br /&gt;
# The application title and the version of application on top&lt;br /&gt;
# The Action window on the left side&lt;br /&gt;
# The configuration folder on the right side&lt;br /&gt;
# The configuration parameters in the center windows&lt;br /&gt;
# The devices configuration (LoRa WAN server configuration) at the bottom left&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MG003-L-EU_Configuration_Tool_Java&amp;diff=734</id>
		<title>MG003-L-EU Configuration Tool Java</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MG003-L-EU_Configuration_Tool_Java&amp;diff=734"/>
				<updated>2022-02-14T09:39:53Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* Prerequisite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Gateways]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prerequisite ===&lt;br /&gt;
&lt;br /&gt;
Nemeus Java application to control the gateway requests that the JAVA Runtime Evaluation 8 kit is installed onto the computer. This one can be found on [https://javadl.oracle.com/webapps/download/AutoDL?BundleId=244036_89d678f2be164786b292527658ca1605 ])&lt;br /&gt;
&lt;br /&gt;
=== Installation / Execution ===&lt;br /&gt;
&lt;br /&gt;
Nemeus JAVA Application is made of only one file : o_NemeusCustomerGateway.jar. This one can be put in any folder.To execute the JAVA application, the following command must be executed in a Command DOS windows in the folder in which the file is available.&lt;br /&gt;
&lt;br /&gt;
[http://store.nemeus.fr/apps/gatewayTool/ Nemeus Java Gateway Application] Used to manage the gateway via Network interface&lt;br /&gt;
&lt;br /&gt;
 java -jar o_NemeusCustomerGateway.jar&lt;br /&gt;
&lt;br /&gt;
=== Logs ===&lt;br /&gt;
&lt;br /&gt;
During execution, the JAVA application records information in a log file which is created in same folder of the .jar file at the time this one is started. The generated log file stays the same during all the JAVa application execution. The file format is log-mgw-&amp;lt;xxxxx&amp;gt; where xxxx corresponds to the date and time of the JAVA application start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== master window ===&lt;br /&gt;
The following figure gives an overview of the JAVA application.&lt;br /&gt;
&lt;br /&gt;
[[File:Mg003-screenshot-start.png|thumb|mg003 Java screenshoot start]]&lt;br /&gt;
&lt;br /&gt;
This one is based on followings&lt;br /&gt;
# The application title and the version of application on top&lt;br /&gt;
# The Action window on the left side&lt;br /&gt;
# The configuration folder on the right side&lt;br /&gt;
# The configuration parameters in the center windows&lt;br /&gt;
# The devices configuration (LoRa WAN server configuration) at the bottom left&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=730</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=730"/>
				<updated>2021-03-18T09:58:27Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=RRXF (no more supported) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa™ mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa™WAN transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa™ Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa™ Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa™, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRa™WAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRa™WAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRa™WAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRa™WAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRa™WAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRa™WAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRa™WAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRa™WAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRa™WAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRa™WAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRa™WAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRa™WAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified for test purpose, SIGFOX™ recommands to use the default value 0 which corresponds to 4096.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4, RC5, RC6 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC5 uses 923.300 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC6 uses 865.200 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC5 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC6 uses 866.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and SIGFOX™ layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or SIGFOX™ layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRa™WAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRa™WAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRa™WAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRa™WAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=729</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=729"/>
				<updated>2021-03-18T09:57:06Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=RTXF (no more supported) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa™ mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa™WAN transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa™ Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa™ Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa™, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRa™WAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRa™WAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRa™WAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRa™WAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRa™WAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRa™WAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRa™WAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRa™WAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRa™WAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRa™WAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRa™WAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRa™WAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified for test purpose, SIGFOX™ recommands to use the default value 0 which corresponds to 4096.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4, RC5, RC6 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC5 uses 923.300 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC6 uses 865.200 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and SIGFOX™ layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or SIGFOX™ layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRa™WAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRa™WAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRa™WAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRa™WAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=728</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=728"/>
				<updated>2021-03-18T09:51:28Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=RTXF (no more supported) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa™ mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa™WAN transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa™ Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa™ Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa™, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRa™WAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRa™WAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRa™WAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRa™WAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRa™WAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRa™WAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRa™WAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRa™WAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRa™WAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRa™WAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRa™WAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRa™WAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified for test purpose, SIGFOX™ recommands to use the default value 0 which corresponds to 4096.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4, RC5, RC6 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC5 uses 923.300 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and SIGFOX™ layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or SIGFOX™ layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRa™WAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRa™WAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRa™WAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRa™WAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=727</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=727"/>
				<updated>2021-03-18T09:35:16Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=ON */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa™ mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa™WAN transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa™ Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa™ Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa™, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRa™WAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRa™WAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRa™WAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRa™WAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRa™WAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRa™WAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRa™WAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRa™WAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRa™WAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRa™WAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRa™WAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRa™WAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified for test purpose, SIGFOX™ recommands to use the default value 0 which corresponds to 4096.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4, RC5, RC6 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and SIGFOX™ layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or SIGFOX™ layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRa™WAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRa™WAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRa™WAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRa™WAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=723</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=723"/>
				<updated>2021-03-16T17:01:42Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa™ mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa™WAN transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa™ Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa™ Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa™, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRa™WAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRa™WAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRa™WAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRa™WAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRa™WAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRa™WAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRa™WAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRa™WAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRa™WAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRa™WAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRa™WAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRa™WAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and SIGFOX™ layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or SIGFOX™ layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRa™WAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRa™WAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRa™WAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRa™WAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=722</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=722"/>
				<updated>2021-03-16T17:01:03Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT LoRa™WAN (MAC) commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa™ mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa™WAN transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa™ Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa™ Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa™, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRa™WAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRa™WAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRa™WAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRa™WAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRa™WAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRa™WAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRa™WAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRa™WAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRa™WAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRa™WAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRa™WAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRa™WAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and SIGFOX™ layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or SIGFOX™ layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=721</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=721"/>
				<updated>2021-03-16T16:59:18Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* Informative examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa™ mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa™WAN transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa™ Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa™ Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa™, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and SIGFOX™ layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or SIGFOX™ layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=720</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=720"/>
				<updated>2021-03-16T16:58:58Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+RF=SSW */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa™ mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa™WAN transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa™ Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and SIGFOX™ layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or SIGFOX™ layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=719</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=719"/>
				<updated>2021-03-16T16:58:44Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+RF=RSW */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa™ mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa™WAN transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and SIGFOX™ layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or SIGFOX™ layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=718</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=718"/>
				<updated>2021-03-16T16:58:30Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+RF=SPER */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa™ mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa™WAN transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and SIGFOX™ layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or SIGFOX™ layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=717</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=717"/>
				<updated>2021-03-16T16:57:41Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+RF=RPER */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa™ mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa™WAN transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa™/LoRa™WAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and SIGFOX™ layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or SIGFOX™ layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=716</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=716"/>
				<updated>2021-03-16T16:57:07Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* Generic Parameter description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa™ mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa™ mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa™WAN transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and SIGFOX™ layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or SIGFOX™ layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=715</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=715"/>
				<updated>2021-03-16T16:54:58Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SCHC=SL2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and SIGFOX™ layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or SIGFOX™ layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=714</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=714"/>
				<updated>2021-03-16T16:54:40Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SCHC=RL2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and SIGFOX™ layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or SIGFOX™ layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For SIGFOX™ L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=713</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=713"/>
				<updated>2021-03-16T16:54:20Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=SCFG */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and SIGFOX™ layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or SIGFOX™ layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=712</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=712"/>
				<updated>2021-03-16T16:53:54Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=SKEY (for certification tests) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=711</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=711"/>
				<updated>2021-03-16T16:53:39Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=RKEY (for certification tests) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if SIGFOX™ layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=710</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=710"/>
				<updated>2021-03-16T16:53:25Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=SRXF (no more supported) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=709</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=709"/>
				<updated>2021-03-16T16:53:13Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=RRXF (no more supported) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=708</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=708"/>
				<updated>2021-03-16T16:53:01Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=STXF (no more supported) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=707</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=707"/>
				<updated>2021-03-16T16:52:46Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=RTXF (no more supported) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=706</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=706"/>
				<updated>2021-03-16T16:52:31Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=SREP (no more supported) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=705</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=705"/>
				<updated>2021-03-16T16:52:18Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=RREP (no more supported) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because SIGFOX™ library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=704</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=704"/>
				<updated>2021-03-16T16:50:53Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=ON */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means SIGFOX™ library doesn't encrypt the payload, 1 means SIGFOX™ library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=703</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=703"/>
				<updated>2021-03-16T16:50:25Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+RF=SPER */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and SIGFOX™ (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in SIGFOX™ (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means Sigfox library doesn't encrypt the payload, 1 means Sigfox library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=702</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=702"/>
				<updated>2021-03-16T16:49:34Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+RF=RPER */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/SIGFOX™ carrier sensing and the frequency offset for SIGFOX™ Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and Sigfox (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in Sigfox (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means Sigfox library doesn't encrypt the payload, 1 means Sigfox library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=701</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=701"/>
				<updated>2021-03-16T16:47:02Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+MAC=RAPPSKEY */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and Sigfox (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in Sigfox (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means Sigfox library doesn't encrypt the payload, 1 means Sigfox library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=700</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=700"/>
				<updated>2021-03-16T16:46:54Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+MAC=RNSKEY */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and Sigfox (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in Sigfox (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means Sigfox library doesn't encrypt the payload, 1 means Sigfox library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=699</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=699"/>
				<updated>2021-03-16T16:46:42Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+MAC=RAPPKEY */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and Sigfox (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in Sigfox (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means Sigfox library doesn't encrypt the payload, 1 means Sigfox library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=698</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=698"/>
				<updated>2021-03-16T16:45:57Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=STXP (for test purpose) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and Sigfox (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in Sigfox (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means Sigfox library doesn't encrypt the payload, 1 means Sigfox library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (no more supported) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=697</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=697"/>
				<updated>2021-03-16T16:45:46Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=RTXP (for test purpose) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and Sigfox (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in Sigfox (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means Sigfox library doesn't encrypt the payload, 1 means Sigfox library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (for test purpose) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=696</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=696"/>
				<updated>2021-03-16T16:45:30Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=SRXF */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and Sigfox (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in Sigfox (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means Sigfox library doesn't encrypt the payload, 1 means Sigfox library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF (no more supported) === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (for test purpose) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=695</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=695"/>
				<updated>2021-03-16T16:45:21Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=RRXF */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and Sigfox (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in Sigfox (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means Sigfox library doesn't encrypt the payload, 1 means Sigfox library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (for test purpose) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=694</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=694"/>
				<updated>2021-03-16T16:45:12Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=STXF */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and Sigfox (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in Sigfox (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means Sigfox library doesn't encrypt the payload, 1 means Sigfox library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF (no more supported) === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (for test purpose) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=693</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=693"/>
				<updated>2021-03-16T16:45:04Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=RTXF */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and Sigfox (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in Sigfox (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means Sigfox library doesn't encrypt the payload, 1 means Sigfox library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (for test purpose) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=692</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=692"/>
				<updated>2021-03-16T16:44:54Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=SREP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and Sigfox (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in Sigfox (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means Sigfox library doesn't encrypt the payload, 1 means Sigfox library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP (no more supported) === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (for test purpose) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=691</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=691"/>
				<updated>2021-03-16T16:44:33Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=RREP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and Sigfox (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in Sigfox (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means Sigfox library doesn't encrypt the payload, 1 means Sigfox library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP (no more supported) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (for test purpose) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=690</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=690"/>
				<updated>2021-03-16T16:42:44Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=SKEY (for certification tests) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and Sigfox (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in Sigfox (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means Sigfox library doesn't encrypt the payload, 1 means Sigfox library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (for test purpose) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=689</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=689"/>
				<updated>2021-03-16T16:42:31Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=SKEY (for certification tests) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and Sigfox (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in Sigfox (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means Sigfox library doesn't encrypt the payload, 1 means Sigfox library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (for test purpose) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select public key&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	<entry>
		<id>https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=688</id>
		<title>MM002-LS 21Wxx AT Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nemeus.fr/index.php?title=MM002-LS_21Wxx_AT_Commands&amp;diff=688"/>
				<updated>2021-03-16T16:41:53Z</updated>
		
		<summary type="html">&lt;p&gt;Elc: /* AT+SF=RKEY (for certification tests) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MM002]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;!!! UNDER CONSTRUCTION !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT commands are used as an interface with Nemeus Communication modules. Modules can be driven at 3 different levels:&lt;br /&gt;
&lt;br /&gt;
* Radio level: embedded AT server uses RF SX127x driver API (LoRa™and FSK modulations can be used).&lt;br /&gt;
* LoRa™WAN level: embedded AT server uses LoRa™WAN library API (available only when the library is present in embedded software).&lt;br /&gt;
* SIGFOX™ level: embedded AT server uses SIGFOX™ library API (available only when the library is present in embedded software).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When radio level is used'''&amp;lt;/u&amp;gt;, no device personalization is required, it is up to AT client application to implement network layer according to the network the device is attached (the module doesn’t know the network).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When LoRa™WAN level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* Whatever the activation type, a 64 bits device unique identifier.&lt;br /&gt;
* When Activation By Personalization (ABP) is used:&lt;br /&gt;
** An AES128 network session key for MIC computation and encryption of MAC control commands on port 0.&lt;br /&gt;
** An AES128 application session key for encryption of application payloads (not required when data encryption is disabled on the module).&lt;br /&gt;
** A device address&lt;br /&gt;
* When Over The Air Activation (OTAA) is used:&lt;br /&gt;
** A 64 bits join server unique identifier.&lt;br /&gt;
** An AES128 Key used to derive the network and application session keys.&lt;br /&gt;
&lt;br /&gt;
The modules are personalized with Nemeus OUI during production phase and they can’t be modified. The device unique identifier is read-only and the AES128 keys are hidden.&lt;br /&gt;
&lt;br /&gt;
The application unique identifier is modifiable by AT command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''When SIGFOX™ level is used'''&amp;lt;/u&amp;gt;, the device is personalized with the following parameters:&lt;br /&gt;
&lt;br /&gt;
* The read-only device unique identifier.&lt;br /&gt;
* The hidden AES128 security key.&lt;br /&gt;
* The initial read-only Portability Access Code (PAC).&lt;br /&gt;
&lt;br /&gt;
Before driving the module, the AT client application must activate the level it wants to use.&lt;br /&gt;
&lt;br /&gt;
LoRa™WAN and SIGFOX™ levels can be activated in parallel, it is called the dual mode.&lt;br /&gt;
&lt;br /&gt;
Radio level can't be activated in parallel with LoRa™WAN and/or SIGFOX™ levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mm002_serial_diagram.png|center|500px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For evaluation/test purpose, Nemeus recommends to use NemeusATK java application to drive the module.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOC limit|3}}&lt;br /&gt;
&lt;br /&gt;
== UART configuration ==&lt;br /&gt;
&lt;br /&gt;
The UART configuration for Modem connection is as follows:&lt;br /&gt;
&lt;br /&gt;
* Baud Rate : 38400&lt;br /&gt;
* Data : 8 bits&lt;br /&gt;
* Parity : None&lt;br /&gt;
* Stop : 1 bit&lt;br /&gt;
* Flow control : None&lt;br /&gt;
* End line character : &amp;amp;lt;LF&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E.g. Typical configuration given by ‘stty’ command on linux:&lt;br /&gt;
&lt;br /&gt;
''speed 38400 baud; rows 0; columns 0; line = 0;''&lt;br /&gt;
&lt;br /&gt;
''intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &amp;amp;lt;undef&amp;amp;gt;; eol2 = &amp;amp;lt;undef&amp;amp;gt;;swtch = &amp;amp;lt;undef&amp;amp;gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;flush = ^O; min = 1; time = 0;''&lt;br /&gt;
&lt;br /&gt;
''-parenb -parodd cs8 hupcl -cstopb cread clocal –crtsct signbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff –iuclc -ixany -imaxbel -iutf8''&lt;br /&gt;
&lt;br /&gt;
''-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop –echoprt -echoctl -echoke''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
At command are split according to communication layers. This is a list of main AT commands for SW given in ‘compatibility’ paragraph. The full list and limitation can be found in SW delivery note.&lt;br /&gt;
&lt;br /&gt;
Formalism is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AT-command-line.png|center]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each group among RF, RFRX, RFTX, MAC and SFX, the command AT+&amp;amp;lt;group&amp;amp;gt;= HELP describes available sub-commands. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SET,SCH,RCH,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID,APPKEY,NSKEY,APPSKEY&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When a sub-command has parameter, AT+&amp;amp;lt;group&amp;amp;gt;= &amp;amp;lt;cmd&amp;amp;gt;? Describes the parameter list. Example:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDTXT?&lt;br /&gt;
 +MAC: SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
When command is unknown “command not found (‘try help’)” is returned.&lt;br /&gt;
&lt;br /&gt;
AT commands are not cancelable, thus AT client application must wait for AT response before sending a new command.&lt;br /&gt;
&lt;br /&gt;
Due to UART Rx buffer size, an AT command can't exceeds 511 characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Parameter description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Following table describes mains parameters used with AT commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                        &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Type'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mod&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Modulation to be use&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
LORA/FSK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;freq&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Carrier frequency&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Expressed in Hertz *&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;pwr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Tx power (range depends on Module definition; e.g. MM001 -1dBm to 14dBm)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;bw&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Bandwidth from 125kHz to 500 kHz&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hertz *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Spreading Factor in LoRa mode&lt;br /&gt;
&lt;br /&gt;
Data rate in FSK mode&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6/7 to 12 *&lt;br /&gt;
&lt;br /&gt;
In kb/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;cr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Coding Rate (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
1 to 4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;min/maxdr&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Data rate range&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
SF7BW125 to SF12BW125, SF7BW250 or FSK50KBPS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxcrcon&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for CRC check activation in TX or RX&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;preamble&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Length of the preamble&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
6 to 65535&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;f_dev&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Frequency deviation (FSK mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;fixed_len&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In RFTX commands: false means PHY header indicates the payload size, true means PHY payload is constant (no header) and equal to the sent payload length&lt;br /&gt;
&lt;br /&gt;
In RFRX commands: 0 means Rx payload length is decoded in PHY header, &amp;gt;0 means the Rx payload size is constant and equal to &amp;amp;lt;fixed_len&amp;amp;gt; value&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false (RFTX)&lt;br /&gt;
&lt;br /&gt;
Decimal value (RFRX)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tx/rxiqinv'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Flag for IQ inversion in TX or RX (LoRa mode only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
True or false&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw2&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Delay before RX windows 2 ; NOTE: rx_w2 must be longer than rx_w1.&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;tstamp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Rx ot Tx timestamp&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In ticks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;symbtimeout&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Number of symbols before RX timeout&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
5 to 1023&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;port&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
MAC port&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;textpayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt; binarypayload&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Payload to send or received payload in hexadecimal coded in ASCII&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ASCII string containing 0 to F characters&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;chan&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Identifies one of the 8 MAC channels&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;enable&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates the status of a channel&lt;br /&gt;
|&lt;br /&gt;
True or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbrepeat&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of repetitions when sending a payload.&lt;br /&gt;
&lt;br /&gt;
At MAC level this parameter indicates if data confirmed must be used or not (0 means unacked mode&amp;amp;gt;).&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 to N&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;interval&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Time interval between repetitions&lt;br /&gt;
| &lt;br /&gt;
In ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;hexaddress&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Address of a registry in hexadecimal&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;nbbytes&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
0 to 4&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;byteN&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Byte to write&lt;br /&gt;
| &lt;br /&gt;
0x00 to 0xFF&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;margin&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Link demodulation margin above the demodulation floor computed by the nearest gateway&lt;br /&gt;
| &lt;br /&gt;
0 to 254 in dB&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;gwcnt&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Number of gateways which received the MAC message&lt;br /&gt;
| &lt;br /&gt;
1 to N&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devuid&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device unique identifier&lt;br /&gt;
| &lt;br /&gt;
8 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;devaddr&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Device address (4 LSB of &amp;amp;lt;devuid&amp;amp;gt;)&lt;br /&gt;
| &lt;br /&gt;
4 bytes&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;more&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Indicates if more downlink data is pending&lt;br /&gt;
| &lt;br /&gt;
true or false&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;mode&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
LoRa MAC transmission mode&lt;br /&gt;
| &lt;br /&gt;
0 for confirmed data&lt;br /&gt;
not 0 for unconfirmed data&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;rxw1freq&amp;amp;gt;'''&lt;br /&gt;
| &lt;br /&gt;
Channel frequency used for Rx window 1&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In Hz, 0 means same as Tx frequency&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;eirp&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Effective Isotropic Radiated Power received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
In dBm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;updwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Uplink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;dwdwell&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Downlink dwell time received in TxParamSetupReq (Asian band only)&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
0 means no limit&lt;br /&gt;
&lt;br /&gt;
1 means 400 ms&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;backoff&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Ack mode retransmission back-off procedure&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
false means disabled&lt;br /&gt;
&lt;br /&gt;
true means enabled&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Depends on Module in use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generic Response description ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every AT command send a response of one of the following types:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                                            &lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''Values'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Description'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Visible output'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
'''Generic'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;OK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;ERROR NOACK&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR response due to a missing ACK&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
ERROR_NOACK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+MAC: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from MAC layer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+MAC:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFTX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (TX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFTX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+RFRX: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from RF layer (RX)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+RFRX:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
'''&amp;amp;lt;CR&amp;amp;gt;&amp;amp;lt;LF&amp;amp;gt;+DEBUG: '''&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Response from debug layer&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
+DEBUG:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}  &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT Generic commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
Intentionally left blank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT RF commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
RF commands are dealing with the RF Layer. This layer should be started before using most of RF commands listed in this section (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
3 groups of commands exist:&lt;br /&gt;
&lt;br /&gt;
* +RF group: commands common to TX and RX functions.&lt;br /&gt;
* +RFTX group: commands dedicated to TX functions.&lt;br /&gt;
* +RFRX group: commands dedicated to RX functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=HELP&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,RPER,SPER,RSW,SSW&lt;br /&gt;
 +RF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start RF layer (Radio driver) and is mandatory in order to use most of RF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
ERROR is returned if either LoRa™WAN stack or SIGFOX™ stack is using the radio (Tx or Rx is ongoing).&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack was ON (but not using the radio), it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=OFF ===&lt;br /&gt;
&lt;br /&gt;
This command is used to stop RF layer (Radio driver). After calling this command, most of RF commands listed in this section will return ERROR (unless stated otherwise).&lt;br /&gt;
&lt;br /&gt;
RF layer stop (Radio driver).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=? ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current RF layer state.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=?&lt;br /&gt;
 +RF: OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=RPER ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RF: &amp;lt;per_state&amp;gt;,&amp;lt;pwroffset&amp;gt;,&amp;lt;loracsoffset&amp;gt;,&amp;lt;fskcsoffset&amp;gt;,&amp;lt;freqoffset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RPER&lt;br /&gt;
 +RF: false,0,12,-5,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=SPER === &lt;br /&gt;
This command is used to set the Packet Error Rate state, the power offset, the RSSI offset for LoRa/LoRaWAN carrier sensing, the RSSI offset for FSK/Sigfox carrier sensing and the frequency offset for Sigfox Tx.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the AT+RF=SPER?command:&lt;br /&gt;
&lt;br /&gt;
+RF=SPER,&amp;amp;lt;per_state&amp;amp;gt;,&amp;amp;lt;pwroffset&amp;amp;gt;,&amp;amp;lt;loracsoffset&amp;amp;gt;,&amp;amp;lt;fskcsoffset&amp;amp;gt;,&amp;amp;lt;freqoffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;per_state&amp;amp;gt; PER state, unchanged when absent (string true or false).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;pwroffset&amp;amp;gt; is the Power offset (signed decimal in dBm)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;loracsoffset&amp;amp;gt; is the RSSI offset in LoRa (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;fskcsoffset&amp;amp;gt; is the RSSI offset in Fsk and Sigfox (signed decimal in dB)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;freqoffset&amp;amp;gt; is the frequency offset in Sigfox (signed decimal in Hz)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When PER state is true, a counter is added at the beginning of Tx frames. This counter is used on Rx side to compute the Packet Error Rate.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;per_state&amp;amp;gt; is “true”, “false” or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if &amp;amp;lt;per_state&amp;amp;gt; is syntactically incorrect.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SPER,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RF=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa and FSK synchro words. Synchro words are in hexadecimal format (see formalism on SSW command)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=RSW&lt;br /&gt;
 +RF: 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RF=SSW === &lt;br /&gt;
This command is used to set the synchro words.&lt;br /&gt;
&lt;br /&gt;
AT+RF=SSW,&amp;amp;lt;LoRa_SyncWord&amp;amp;gt;,&amp;amp;lt;Fsk_SyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;LoRa_SyncWord&amp;amp;gt; LoRa Synchro Word (one byte encoded as hexas digits)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;Fsk_SyncWord&amp;amp;gt; FSK Synchro Word (up to six bytes encoded as hexa digits)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RF=SSW, 12,69817E96&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=HELP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,SEND,SNDTXT,SNDBIN,START,STOP&lt;br /&gt;
 +RFTX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=? ===&lt;br /&gt;
&lt;br /&gt;
Read TX parameters. This command does not need the RF layer to be ON.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFTX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=?&lt;br /&gt;
 +RFTX :  LORA,868100000,14,125000,7,1,true,8,0,false,false,0,0,0,5,false,true,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SET === &lt;br /&gt;
Write Tx parameters. This command does not need the RF layer to be ON. Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be checked by the '''''AT+RFTX=SET?''''' command:&lt;br /&gt;
&lt;br /&gt;
+RFTX= SET,&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;pwr&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;txcrcon&amp;amp;gt;,&amp;amp;lt;preamble&amp;amp;gt;,&amp;amp;lt;fdev&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;txiqinv&amp;amp;gt;,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;rxaftertx&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;symbtimeout&amp;amp;gt;, &amp;amp;lt;rxiqinv&amp;amp;gt; and &amp;amp;lt;rxcrcon&amp;amp;gt; are used only when an Rx window is specified.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;tstamp&amp;amp;gt; is the absolute clock time of the module. If the time is over, the frame is immediately transmitted. Usually this timestamp is a delay added to an Rx timestamp (feature not fully implemented)&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;fixed_len&amp;amp;gt; is true then the fixed length value is the size of the sent payload and the Rx side must know this size.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set the &amp;amp;lt;pwr&amp;amp;gt; to 12 and the &amp;amp;lt;txcrcon&amp;amp;gt; to false:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SET,,,12,,,,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFTX=SEND, (for test purpose) === &lt;br /&gt;
Transmit &amp;amp;lt;nb_frames&amp;amp;gt; numbered frames every &amp;amp;lt;interval&amp;amp;gt; ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SEND,&amp;amp;lt;nb_frames&amp;amp;gt;,&amp;amp;lt;interval&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nb_frames&amp;amp;gt; = 1, &amp;amp;lt;interval&amp;amp;gt; = 500 (ms).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), transmitted frames contain a counter on 4 bytes followed by a 32 bytes fixed pattern.&lt;br /&gt;
&lt;br /&gt;
This command is used as a generator for Packet Error Rate (PER) computing.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nb_frames&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SEND,3,500&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=START&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=STOP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Stop FSK continuous transmission.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDTXT, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; text frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDTXT,&amp;amp;lt;txt&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat&amp;amp;gt; = 1.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;txt&amp;amp;gt; parameter is transmitted as received on serial link, the module doesn’t manage any character set.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFTX=SNDTXT,HELLO WORLD,3&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFTX=SNDBIN, === &lt;br /&gt;
Repeat &amp;amp;lt;nbrepeat&amp;amp;gt; binary frames every 500 ms.&lt;br /&gt;
&lt;br /&gt;
AT+RFTX= SNDBIN,&amp;amp;lt;bin&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default values : &amp;amp;lt;nbrepeat &amp;amp;gt; = 1&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;bin&amp;amp;gt; parameter is hexadecimal coded in ASCII (2 ASCII characters for 1 binary byte).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see AT+RF=SPER command), a 4 bytes counter is added at the beginning of the frame.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;nbrepeat&amp;amp;gt; have been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or if one frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To send 2 times the 3 bytes 1A 2B 3C:&lt;br /&gt;
&lt;br /&gt;
 AT+RFTX=SNDBIN,1A2B3C,2&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=HELP&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt; are ?,SET,RECV,START,STOP,CONTRX,LVL&lt;br /&gt;
 +RFRX: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=? ===&lt;br /&gt;
&lt;br /&gt;
Read RX parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=?&lt;br /&gt;
 ,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=SET, === &lt;br /&gt;
Set Rx parameters. Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
The following formalism is used. It can be check by the '''''AT+RFRX=SET?'''''&lt;br /&gt;
&lt;br /&gt;
command:&amp;amp;lt;mod&amp;amp;gt;,&amp;amp;lt;freq&amp;amp;gt;,&amp;amp;lt;bw&amp;amp;gt;,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;cr&amp;amp;gt;,&amp;amp;lt;rxcrcon&amp;amp;gt;,&amp;amp;lt;fixed_len&amp;amp;gt;,&amp;amp;lt;rxiqinv&amp;amp;gt;,&amp;amp;lt;''timeout''&amp;amp;gt;,&amp;amp;lt;''symbtimeout''&amp;amp;gt;,&amp;amp;lt;lnaboost&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;''timeout''&amp;amp;gt; and &amp;amp;lt;''symbtimeout''&amp;amp;gt; parameters are no more used by radio stack (they are still present for compatibility with previous module versions).&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To set &amp;amp;lt;dr&amp;amp;gt; parameter to 7:&lt;br /&gt;
&lt;br /&gt;
 AT+RFRX=SET,,,,7&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+RFRX=RECV (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Single frame reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer comes back to IDLE state after reception or after AT+RFRX=STOP command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;per&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, when a frame is received the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command):&lt;br /&gt;
&lt;br /&gt;
+RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
Where 100% is the PER, -35.00 is the RSSI level, 7.00 is the SNR, 0 is “no CRC error”, 1521551302 is the Rx clock time in ms and 12000000CAFEDECA is the received payload, starting with the 4 bytes counter.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;per_state&amp;amp;gt; is false:&lt;br /&gt;
&lt;br /&gt;
+RFRX: ,-35.00,7.00,0,1521551302,CAFEDECA…&lt;br /&gt;
&lt;br /&gt;
PER is not displayed and the 4 bytes counter is not present in the payload (it means that Tx device also has &amp;amp;lt;per_state&amp;amp;gt; set to false.&lt;br /&gt;
&lt;br /&gt;
After frame reception the Rx is automatically stopped.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=RECV&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=START (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception with PER computation if &amp;amp;lt;per_state&amp;amp;gt; is true (see +RF=SPER command).&lt;br /&gt;
&lt;br /&gt;
RF layer stays in RX until Rx stop command is sent (see AT+RFRX=STOP)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
When a TX has been performed during Reception, An AT+RFRX=STOP command may be needed to avoid ERROR from this command&lt;br /&gt;
&lt;br /&gt;
After frame reception RF layer stays in RX (RX stop command must be used to leave RX mode).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=START&lt;br /&gt;
 OK&lt;br /&gt;
 +RFRX: 100%,-35.00,7.00,0,1521551302,12000000CAFEDECA&lt;br /&gt;
 +RFRX: 100%,-32.00,7.00,0,1521554506,13000000CAFEDECA&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=STOP ===&lt;br /&gt;
&lt;br /&gt;
Stop single or continuous reception.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is in RX.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is not in RX.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=CONTRX ===&lt;br /&gt;
&lt;br /&gt;
Continuous reception without PER computation.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON and not already receiving.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF or is already receiving.&lt;br /&gt;
&lt;br /&gt;
Then, for each received frame, the unsolicited response below is sent:&lt;br /&gt;
&lt;br /&gt;
+RFRX: &amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;,&amp;amp;lt;crcerr&amp;amp;gt;,&amp;amp;lt;tstamp&amp;amp;gt;,&amp;amp;lt;binary payload&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+RFRX=LVL (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Last reception parameters read (RSSI, SNR)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if RF layer is ON.&lt;br /&gt;
&lt;br /&gt;
ERROR if RF layer is OFF.&lt;br /&gt;
&lt;br /&gt;
Response information is as below:&lt;br /&gt;
&lt;br /&gt;
+RFRX: LVL,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+RFRX=LVL&lt;br /&gt;
 +RFRX: LVL,-77.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
&lt;br /&gt;
==== LoRa Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency.&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,LORA,,125000,7  &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters. Let the channel to default frequency&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,LORA,868100000,14,125000,7&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation LoRa, freq 868100000, Tx power 14dbm, bandwidth 125KHz, SF7&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FSK Communication ====&lt;br /&gt;
&lt;br /&gt;
Below is an example where two Modules are configured to communicate on a specific frequency. For FSK some rules apply on selected &amp;quot;bandwith/datarate&amp;quot; in RX and &amp;quot;frequency deviation/datarate&amp;quot; in TX. This is described in ([[MM002-xx-EU datasheet#Reference|sx1272 datasheet]])&lt;br /&gt;
&lt;br /&gt;
First we setup the Module A and start a continuous RX, then we can setup the Module B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Module A'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=SET,FSK,868100000,125000,1200 &lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set some RX parameters.freq 868100000,Bandwith 125 000, Datarate 1200&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=CONTRX&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Start a Continuous RX&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:Wait RX (set module B)&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 +RFRX: -78.00,3.00,0,152987007,CAFE   &lt;br /&gt;
| &lt;br /&gt;
:receive 0xCAFE hexa frame, rssi -78, snr 3, at timestamp 152987007 ms&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFRX=STOP&lt;br /&gt;
| &lt;br /&gt;
:Stop continuous Rx&lt;br /&gt;
|} &lt;br /&gt;
'''Module B'''&lt;br /&gt;
 &lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RF=ON&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:Set the RF ON&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SET,FSK,868100000,14,,1200,,,,50000&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:set Tx modulation FSK, freq 868100000, Tx power 14dbm, Datarate 1200, Deviation Frequency 50 000&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 AT+RFTX=SNDBIN,CAFE,1&lt;br /&gt;
 OK&lt;br /&gt;
| &lt;br /&gt;
:send 0xCAFE hexa frame 1 time&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 …..&lt;br /&gt;
| &lt;br /&gt;
:&lt;br /&gt;
|} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT LoRa™WAN (MAC) commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
3 types of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* MAC commands: AT+MAC=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* MAC solicited responses: +MAC: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to MAC commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the MAC command and the OK response.&lt;br /&gt;
* MAC unsolicited responses: +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the MAC command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+MAC=? to know the current MAC mode (OFF/ON, ABP/OTAA, Class A/C).&lt;br /&gt;
* AT+MAC=OFF and AT+MAC=ON,… to change the MAC mode.&lt;br /&gt;
* AT+MAC=DEVADRR and unsolicited +MAC: DEVADDR,… to know the current state of an OTAA device.&lt;br /&gt;
* AT+MAC=SNDBIN,… to send uplink frame.&lt;br /&gt;
* +MAC: RCVBIN,… when receiving downlink frames and to know Rx windows termination.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END to know when the LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used by NemeusATK Java application to manage the LoRa™WAN layer (for IOT purpose, device provisioning …).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= HELP&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SCH,RCH,SDR,RDR,STI,RTI,SRX,RRX,SNDTXT,SNDBIN,RCVTXT,RCVBIN,STOPRCV,SNDLCR,DEVUID,DEVADDR,APPUID&lt;br /&gt;
 +MAC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=ON === &lt;br /&gt;
This command is used to start LoRa™WAN layer and is mandatory in order to use most of MAC commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
 ''AT+MAC=ON,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;''&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;is deprecated, only the default value (3) is accepted&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
*&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Start LoRa™WAN layer in class A with OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=ON,,A,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=? ===&lt;br /&gt;
&lt;br /&gt;
Read current LoRa™WAN layer status.&lt;br /&gt;
&lt;br /&gt;
To change LoRa™WAN layer status, AT+MAC=OFF and AT+MAC=ON,… must be performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;minor_ver&amp;amp;gt;,&amp;amp;lt;class&amp;amp;gt;,&amp;amp;lt;ch_pages&amp;amp;gt;,&amp;amp;lt;ism_band&amp;amp;gt;,&amp;amp;lt;otaa&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;lwan_fw_ver&amp;amp;gt;,&amp;amp;lt;lwan_prot_ver&amp;amp;gt;,&amp;amp;lt;lwan_rp_ver&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;minor_ver&amp;amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;always '''V'''3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;class&amp;amp;gt; is A or C.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; is the number of pages of 16 channels available at LoRa™WAN layer (in terms of memory space), &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1 page for EU863-870, AS923 and RU864-870, 5 pages for US902-928.&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ism_band&amp;amp;gt; is 8 for EU863-870MHz, 9 for US902-928MHz, 10 for AS923MHz and 13 for RU864-870MHz. ISM band can’t be modified dynamically, it is set at compilation time.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;otaa&amp;amp;gt; is 0 for ABP and 1 for OTAA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_fw_ver&amp;amp;gt; is the firmware version of the LoRaWAN stack&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_prot_ver&amp;amp;gt; is the version of the LoRaWAN protocol specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lwan_rp_ver&amp;amp;gt; is the version of the regional parameters specification&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
A class A US902-928MHz device with 80 channels (5*16) in OTAA:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,5,9,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,1.0.0.0,1.0.4.0,1.0.1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To indicate when LoRaWAN layer is back to idle.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,1A2B3C,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVBIN === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as binary hexa string.&lt;br /&gt;
&lt;br /&gt;
AT+MAC= RCVBIN,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVBIN,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;binarypayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
The RCVBIN unsolicited response is always sent after a Tx, even if no frame has been received. It indicates the end of Rx windows.&lt;br /&gt;
&lt;br /&gt;
For a class A device, it is sent when a downlink frame has been received or at the end of the Rx window 2 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
For a class C device, it is sent when a downlink frame has been received or at the end of the Rx window 1 (if no downlink frame has been received).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in ack mode, the RCVBIN is sent before the OK (or ERROR NOACK) response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
If the Tx was in unack mode, the RCVBIN is sent after the OK response of the Tx (SNDBIN or SNDTXT command).&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RCVBIN,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVBIN,2,true,1A2B3C4D,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDTXT === &lt;br /&gt;
It is the same command as AT+MAC=SNDBIN except that the payload is interpreted as text and is transmitted as received on serial link (no translation from hexa ASCII to hexa binary is performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC= SNDTXT,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;nbrepeat&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;mode&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;add_tx_rx_info&amp;amp;gt;,&amp;amp;lt;dev_time_req&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Text frame transmission.&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when mode is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;mode&amp;amp;gt; value is &amp;amp;gt; 0, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nbrepeat&amp;amp;gt; specifies the number of repetitions in acknowledged mode (0 when omitted). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if (&amp;amp;lt;nbrepeat&amp;amp;gt;+1) &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;port&amp;amp;gt; is omitted then port 2 is used by default (port 1 is reserved to embedded generic application).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +RCVBIN:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;dev_time_req&amp;amp;gt; &amp;gt; 0 then a device time request is added in the MAC header of the uplink frame&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and frame has been successfully sent (and acked if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or frame has not been successfully sent (or not acked after repetitions if acked mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
ERROR also when port is reserved regarding LoRa™WAN standard.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited responses below are sent when AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if no channel was free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
Sent for each enabled channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDBIN,HELLO WORLD,3,2,0&lt;br /&gt;
 +MAC: SND,4355&lt;br /&gt;
 +MAC: SND,0&lt;br /&gt;
 +MAC: RCH,0,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,1,,,,,4480,0&lt;br /&gt;
 +MAC: RCH,2,,,,,4480,0&lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: END&amp;lt;/span&amp;gt;&lt;br /&gt;
 On duty cycle expiry (4480 ms after the Tx), channels become available:&lt;br /&gt;
 +MAC: RCH,0,,,,,0,0&lt;br /&gt;
 +MAC: RCH,1,,,,,0,0&lt;br /&gt;
 +MAC: RCH,2,,,,,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCVTXT === &lt;br /&gt;
Register for receiving downlink frames on specified port, payload is output as text string (translation to binary hexa string is not performed).&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCVTXT,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''This command is no more required because all downlink frames are routed on serial link except when the port is used by an embedded application.'''&lt;br /&gt;
&lt;br /&gt;
'''By default, downlink payload are processed as binary payload, thus if the AT client application needs to receive the payload as text (without any binary hexa string translation), it must uses this command.'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid and free.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid or port is already used by an embedded application.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited Response ====&lt;br /&gt;
&lt;br /&gt;
+MAC: RCVTXT,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;more&amp;amp;gt;,&amp;amp;lt;textpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;amp;lt;more&amp;amp;gt; is true, it means that more downlink frames are pending in MAC server. If piggyback setting is disabled and device class is A, LoRa™WAN layer will automatically poll the server to receive more downlink frames.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCVTXT,2&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Then when a frame is received on port 2 and more downlink frames are pending:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RCVTXT,2,true,HELLO WORLD,-43.00,7.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STOPRCV === &lt;br /&gt;
Unregister for receiving downlink frames on specified port.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STOPRCV,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and port is valid.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or port is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SNDLCR === &lt;br /&gt;
Send a Link Check Request.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SNDLCR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the LCR message is sent in unack mode on port 0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the LCR message is sent in ack mode on port 0. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the +MAC: &amp;amp;lt;margin&amp;amp;gt;,...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if MAC is ON and Link Check Answer has been received.&lt;br /&gt;
&lt;br /&gt;
ERROR if MAC is OFF or Link Check Answer has not been received and Tx was in unack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR NOACK if Link Check Answer has not been received and Tx was in ack mode.&lt;br /&gt;
&lt;br /&gt;
ERROR also if SIGFOX™ stack is using the radio.&lt;br /&gt;
&lt;br /&gt;
Received data is sent back as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;margin&amp;amp;gt;,&amp;amp;lt;gwcnt&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;,&amp;amp;lt;snr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SNDLCR&lt;br /&gt;
 +MAC: 20,3,-45.00,8.00&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RCH === &lt;br /&gt;
Read MAC channels command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=RCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;unsol_evt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt; specifies the channel to read (all channels of the page if omitted or if 16)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt; specifies the channel page (all pages if omitted or if number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;unsol_evt&amp;amp;gt; specifies &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;which&amp;lt;/span&amp;gt; unsolicited events are required (0 when &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;no event&amp;lt;/span&amp;gt; required). The unsolicited events inform the AT client application when a MAC parameter has been changed by the LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is less than 4 digits then the old meaning is decoded (0: no event, &amp;gt;0: all events except the transaction end event)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When &amp;amp;lt;unsol_evt&amp;amp;gt; length is coded on 4 hexa digits then it is decoded as the following bit field:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit0: registration to +SND: &amp;amp;lt;busytime&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit1: registration to +MAC: RCH,&amp;amp;lt;chan_idx&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit2: registration to +MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit3: registration to +MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;amp;lt;nbtrans&amp;amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt; event (&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit4: registration to +MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit5: registration to +MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit6: registration to +MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt; event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;bit7: registration to +MAC: END event&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
For each channel, the following information is output:&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chan&amp;amp;gt;: the channel index in the page (0 to 15).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;frequency&amp;amp;gt;: the frequency in Hz (0 means channel is disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mindr&amp;amp;gt;: minimum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;maxdr&amp;amp;gt;: maximum datarate allowed on the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt;: restricted duty cycle assigned to the channel (applies only when more restricted than ISM regulation specification).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt;: time in ms before the channel can be used again for Tx (due to duty cycle restrictions).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;page&amp;amp;gt;: channel page (0 to number of available pages returned by AT+MAC=? response).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt;: frequency used to open Rx window 1. 0 means same frequency as &amp;amp;lt;frequency&amp;amp;gt; parameter (available only from LoRaWAN V1.0.2, if the parameter is absent in the response, it means the firmware version is older).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when &amp;amp;lt;busytime&amp;amp;gt; changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RCH,&amp;amp;lt;chan&amp;amp;gt;,,,,,&amp;amp;lt;busytime&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RCH&lt;br /&gt;
 +MAC: 0,868100000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 1,868300000,SF12BW125,SF7BW125,100,0,0,869525000&lt;br /&gt;
 +MAC: 2,868500000,SF12BW125,SF7BW125,100,0,0,0&lt;br /&gt;
 +MAC: 3,868850000,SF12BW125,SF7BW125,1000,0,0,0&lt;br /&gt;
 …&lt;br /&gt;
 +MAC: 15,000000000,SF12BW125,FSK50KBPS,1,0,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SCH === &lt;br /&gt;
Set MAC channel command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;min_dr&amp;amp;gt;,&amp;amp;lt;max_dr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SCH?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dutycycle&amp;amp;gt; is applied only if it is more restricted than the ISM regulation specification. 1 means 100%, 10 means 10%, 100 means 1%, ...&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;rxw1freq&amp;amp;gt; is available only from LoRaWAN V1.0.2&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when LoRa™WAN layer modifies a channel and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: SCH,&amp;amp;lt;chan&amp;amp;gt;,&amp;amp;lt;frequency&amp;amp;gt;,&amp;amp;lt;mindr&amp;amp;gt;,&amp;amp;lt;maxdr&amp;amp;gt;,&amp;amp;lt;dutycycle&amp;amp;gt;,&amp;amp;lt;page&amp;amp;gt;,&amp;amp;lt;rxw1freq&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify channel 0:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SCH,0,868100000,SF12BW125,SF7BW125,100,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= RDR ===&lt;br /&gt;
&lt;br /&gt;
Read current MAC datarate command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band firmware&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current datarate changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDR&lt;br /&gt;
 +MAC: SF12BW125,11,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDR === &lt;br /&gt;
Set MAC data rate command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDR,&amp;amp;lt;dr&amp;amp;gt;,&amp;amp;lt;txpwr&amp;amp;gt;,&amp;amp;lt;chanmask&amp;amp;gt;,&amp;amp;lt;chanmaskctrl&amp;amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;eirp&amp;amp;gt;,&amp;amp;lt;updwell&amp;amp;gt;,&amp;amp;lt;dwdwell&amp;amp;gt;,&amp;amp;lt;antennagain&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
Set the data rate, Tx power and number of &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;transmissions&amp;lt;/span&amp;gt; for uplink transmission (applied to all channels compatible with the datarate). &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nbtrans&amp;amp;gt; applies to unconfirmed and confirmed transmissions.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;chanmask&amp;amp;gt; and &amp;amp;lt;chanmaskctrl&amp;amp;gt; specify the channels usable for uplink access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;chanmask&amp;amp;gt; is coded on 4 hexa digits for each channel page (when region has 1 channel page (EU, AS, RU) it is coded on 4 hexa digits, when region has 5 channel pages (US) it is coded on 20 hexa digits)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SDR?''''' command.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;eirp&amp;amp;gt;, &amp;amp;lt;updwell&amp;amp;gt;, &amp;amp;lt;dwdwell&amp;amp;gt; and &amp;amp;lt;antennagain&amp;amp;gt; parameters are present only in case of Asian band.&lt;br /&gt;
&lt;br /&gt;
Programmed Tx power = &amp;amp;lt;eirp&amp;amp;gt; - 2*TxPower - &amp;amp;lt;antennagain&amp;amp;gt; (TxPower is described in LoRaWANRegionalParameters specification: 0=&amp;gt;MaxEIRP, 1=&amp;gt;MaxEIRP-2dB, ...)&lt;br /&gt;
&lt;br /&gt;
Because of SX1272 hardware, Tx power = 13 dBm is never programmed, 14 dBm is set instead.&lt;br /&gt;
&lt;br /&gt;
Thus when &amp;amp;lt;eirp&amp;amp;gt; = 16 and &amp;amp;lt;antennagain&amp;amp;gt; = 3 then computed Tx power = 13 dBm but programmed Tx power = 14 dBm&lt;br /&gt;
&lt;br /&gt;
The maximum Tx power supported by the standard version of MM002 is 14 dBm, so when (&amp;amp;lt;eirp&amp;amp;gt; - &amp;amp;lt;antennagain&amp;amp;gt;) &amp;gt; 14 dBm then 14 dBm is programmed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify current datarate:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SDR,SF12BW125,10,001F,0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RTI ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Time Information command.&lt;br /&gt;
&lt;br /&gt;
Read common channel time information.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current time info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RTI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;''rxw2''&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC= RTI&lt;br /&gt;
 +MAC: 1000,2000,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC= STI === &lt;br /&gt;
Set MAC time information command.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=STI,&amp;amp;lt;rxw1&amp;amp;gt;,&amp;amp;lt;rxw2&amp;amp;gt;,&amp;amp;lt;symbtimeout&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameter can be specified.&lt;br /&gt;
&lt;br /&gt;
Written parameters are not saved in file system, thus they are lost after a new MAC OFF/ON or a device reset.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=STI?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters &amp;amp;lt;rxw1&amp;amp;gt; and &amp;amp;lt;symbtimeout&amp;amp;gt; are common to all channels.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;''rxw2''&amp;amp;gt; parameter is no more used because &amp;amp;lt;''rxw2''&amp;amp;gt; value is set to &amp;amp;lt;rxw1&amp;amp;gt; value + 1000 ms. It is still present for compatibility with old devices.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify time info:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=STI,1000,,6&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RRX ===&lt;br /&gt;
&lt;br /&gt;
Read MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when current Rx info changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RRX&lt;br /&gt;
 +MAC: 869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SRX === &lt;br /&gt;
Set MAC Rx information command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SRX,&amp;amp;lt;rx2frequency&amp;amp;gt;,&amp;amp;lt;rx2dr&amp;amp;gt;,&amp;amp;lt;rx1droffset&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SRX?''''' command.&lt;br /&gt;
&lt;br /&gt;
The parameters are common to all channels.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are syntactically correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To modify Rx parameters:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SRX,869525000,SF9BW125,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RSW ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™ and FSK synchro words used by LoRa™WAN layer. Synchro words are in hexadecimal format.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;LoRa™ sync_word&amp;amp;gt;,&amp;amp;lt;FSK sync_word&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RSW&lt;br /&gt;
 +MAC: 34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SSW === &lt;br /&gt;
This command is used to set the synchro words used by LoRa™WAN layer.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SSW,&amp;amp;lt;LoRaSyncWord&amp;amp;gt;,&amp;amp;lt;FskSyncWord&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
A synchro word is unchanged when related parameter is absent.&lt;br /&gt;
&lt;br /&gt;
Synchro words are in hexadecimal.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SSW?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct or omitted.&lt;br /&gt;
&lt;br /&gt;
ERROR if FSK synchro word is too long (6 bytes/12 hexa digits max) or number of digits is not even.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SSW,34,C194C1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RVAR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the miscellaneous LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
These variables are Tx/Rx counters, aggregated, data encryption&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;rxcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;aggregateddc&amp;amp;gt; values: 1 means 100%, 10 means 10%, 100 means 1%, …&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;encryption&amp;amp;gt; values: 0 means no encryption, != 0 means encryption enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;battlevel&amp;amp;gt; is the value sent in the answer to DevStatusReq MAC command [0..255], default value is 0 which means &amp;quot;external power source&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joindr&amp;amp;gt; is the initial datarate of the join procedure (Europe region only), default value is the maximum datarate supported by the join channels. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;joinchanmask&amp;amp;gt; values: 0 means only 868.1 channel, 1 means only 868.3 channel, 2 means only 868.5 channel, 255 means 868.1, 868.3 and 868.5 channels&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nextdevnonce&amp;amp;gt; is the devnonce which will be encoded in the next join request (last sent devnonce = &amp;amp;lt;nextdevnonce&amp;amp;gt; - 1)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;lastjoinnonce&amp;amp;gt; is the joinnonce of the last valid join accept received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;jareplaycheck&amp;amp;gt; values: 0 means join accept with join nonce == &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored, 1 means join accept with join nonce &amp;lt;= &amp;amp;lt;lastjoinnonce&amp;amp;gt; is ignored&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent only when current aggregated DC changes and AT client application has registered to receive unsolicited events (see AT+MAC=RCH command).&lt;br /&gt;
&lt;br /&gt;
+MAC: RVAR,,,&amp;amp;lt;aggregateddc&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RVAR&lt;br /&gt;
 +MAC: 0,0,1,1&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,0,5,255,10,13441364,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SVAR === &lt;br /&gt;
This command is used to set some LoRa™WAN variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;These variables are Tx counters, aggregated DC, data encryption, battery level, initial join datarate, join channel mask, next dev nonce, last join nonce and join accept replay checking&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SVAR,&amp;amp;lt;txcounter&amp;amp;gt;,&amp;amp;lt;aggregateddc&amp;amp;gt;,&amp;amp;lt;encryption&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;battlevel&amp;amp;gt;,&amp;amp;lt;joindr&amp;amp;gt;,&amp;amp;lt;joinchanmask&amp;amp;gt;,&amp;amp;lt;nextdevnonce&amp;amp;gt;,&amp;amp;lt;lastjoinnonce&amp;amp;gt;,&amp;amp;lt;jareplaycheck&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SVAR?''''' command.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To disable encryption:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SVAR,,,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RADR ===&lt;br /&gt;
&lt;br /&gt;
This command is used to read the current LoRa™WAN ADR, piggyback and back-off states.&lt;br /&gt;
&lt;br /&gt;
'''The ack mode retransmission back-off procedure was initially linked to ADR bit. When ADR bit was on/off, the back-off procedure was on/off. From now, the back-off procedure is linked to the back-off state, it allows to enable ADR bit without enabling the back-off procedure. If &amp;amp;lt;backoff&amp;amp;gt; parameter is absent in RADR response, it means that back-off procedure is still linked to ADR bit (older firmware version).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;adr&amp;amp;gt;, &amp;amp;lt;piggyback&amp;amp;gt; and &amp;amp;lt;backoff&amp;amp;gt; values: true or false.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RADR&lt;br /&gt;
 +MAC: true,false,false&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=SADR === &lt;br /&gt;
This command is used to set some LoRa™WAN ADR and piggyback states.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SADR,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only modified parameters can be specified.&lt;br /&gt;
&lt;br /&gt;
The parameter list can be found by '''''AT+MAC=SADR?''''' command.&lt;br /&gt;
&lt;br /&gt;
When ADR state value is changed, ADR ack counter is reset.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if parameters are correct.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
To enable piggyback:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SADR,,true&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVUID ===&lt;br /&gt;
&lt;br /&gt;
Read device unique identifier.&lt;br /&gt;
&lt;br /&gt;
Device UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devuid&amp;amp;gt;,&amp;amp;lt;rand_seed&amp;amp;gt;,&amp;amp;lt;read_only&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
When read_only value is 1, it means that the device unique identifier is built from Nemeus 36 bits OUI (70B3D5326xxxxxxx). In this case the device UID can’t be modified and the security keys are not readable. &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;read_only&amp;amp;gt; is always 1 in this version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RDEVUID&lt;br /&gt;
 +MAC: 70B3D53260008982,50008982,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RDEVADDR ===&lt;br /&gt;
&lt;br /&gt;
Read device address.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=DEVADDR command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same solicited response.''&lt;br /&gt;
&lt;br /&gt;
''Warning: unsolicited response changed, old one is no more sent!!!''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
Address is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ABP mode, the device address is the 4 LSB of the device unique identifier.&lt;br /&gt;
&lt;br /&gt;
In OTAA mode, the device address is assigned by the network.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited response ====&lt;br /&gt;
&lt;br /&gt;
The unsolicited response below is sent when device is in OTAA mode and at least one AT+MAC=? command has been sent.&lt;br /&gt;
&lt;br /&gt;
+MAC: RDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;,&amp;amp;lt;networkid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read device address of an OTAA device when not yet joint to network:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,1 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
After receipt of valid join accept, unsolicited response is sent:&lt;br /&gt;
&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SDEVADDR, === &lt;br /&gt;
This command is used to modify device address when ABP mode is used.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SDEVADDR,&amp;amp;lt;devaddr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in ABP mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;amp;lt;devaddr&amp;amp;gt; length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SDEVADDR,01020304&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+MAC=RAPPUID ===&lt;br /&gt;
&lt;br /&gt;
Read &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; Unique ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is coded on 8 bytes.&lt;br /&gt;
&lt;br /&gt;
By default it is set to &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It can be modified by sending the following AT command:&lt;br /&gt;
&lt;br /&gt;
AT+GA=DIND,1,8301000008xxxxxxxxxxxxxxxx0000&lt;br /&gt;
&lt;br /&gt;
Where xxxxxxxxxxxxxxxx is the new application UID LSB first.&lt;br /&gt;
&lt;br /&gt;
MAC layer must be restarted to take into account new application UID (AT+MAC=OFF and AT+MAC=ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID can also be modified using AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''This command obsoletes AT+MAC=APPUID command.''&lt;br /&gt;
&lt;br /&gt;
''Old command still works and returns the same response.''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Join server&amp;lt;/span&amp;gt; UID is returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
Read default &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;70B3D53260000100&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID to FEDCBA9876543210:&lt;br /&gt;
&lt;br /&gt;
 AT+GA=DIND,1,83010000081032547698BADCFE0000&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Restart MAC layer:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=OFF&lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=ON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
Read new &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID:&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=RAPPUID&lt;br /&gt;
 +MAC: FEDCBA9876543210&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SAPPUID, === &lt;br /&gt;
This command is used to modify &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;join server&amp;lt;/span&amp;gt; UID.&lt;br /&gt;
&lt;br /&gt;
AT+MAC=SAPPUID,&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If MAC layer is on in OTAA mode, a MAC off/on is automatically performed.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;join_server_uid&amp;amp;gt;&amp;lt;/span&amp;gt; length is 16 characters.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SAPPUID,0102030405060708&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RNSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RNSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RAPPSKEY ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported !!!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR because device UID is read only.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RAPPSKEY&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=RMC ===&lt;br /&gt;
&lt;br /&gt;
Read MultiCast parameters.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported.&lt;br /&gt;
&lt;br /&gt;
Multicast parameters are returned as&lt;br /&gt;
&lt;br /&gt;
+MAC: &amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  - &amp;amp;lt;addr&amp;amp;gt;: the multicast address (32 bits)&lt;br /&gt;
  - &amp;amp;lt;addr_mask&amp;amp;gt;: the significant part of the multicast address (More Significant bits) coded on 32 bits.&lt;br /&gt;
  - &amp;amp;lt;group_mask&amp;amp;gt;: the groups the device can receive (32 bits =&amp;gt; groups 0 to 31).&lt;br /&gt;
  - &amp;amp;lt;fcnt_dw&amp;amp;gt;: the current value of the downlink frame counter (32 bits).&lt;br /&gt;
  - &amp;amp;lt;net_skey&amp;amp;gt;: the network security key for integrity checking (128 bits).&lt;br /&gt;
  - &amp;amp;lt;app_skey&amp;amp;gt;: the application security key for payload ciphering (128 bits).&lt;br /&gt;
&lt;br /&gt;
The address mask specifies which part of the received address is processed as an address and which part is processed as a group.&lt;br /&gt;
The address mask can take the following values:&lt;br /&gt;
  - 0x00000000: the multicast function is disabled&lt;br /&gt;
  - 0xFFFFFFFF: only 1 group is possible&lt;br /&gt;
  - 0xFFFFFFFE: 2 groups are possible&lt;br /&gt;
  - 0xFFFFFFFC: 4 groups are possible&lt;br /&gt;
  - 0xFFFFFFF8: 8 groups are possible&lt;br /&gt;
  - 0xFFFFFFF0: 16 groups are possible&lt;br /&gt;
  - 0xFFFFFFE0: 32 groups are possible&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=RMC&lt;br /&gt;
 +MAC: 789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
With such parameters, the following received addresses are processed:&lt;br /&gt;
  - 0x789ABCDC: valid multicast address, group 0 is accepted because bit0 of group mask is set&lt;br /&gt;
  - 0x789ABCDD: valid multicast address, group 1 is accepted because bit1 of group mask is set&lt;br /&gt;
  - 0x789ABCDE: valid multicast address, group 2 is accepted because bit2 of group mask is set&lt;br /&gt;
  - 0x789ABCDF: valid multicast address, group 3 is rejected because bit3 of group mask is not set&lt;br /&gt;
When the address is accepted (valid multicast address and accepted group) then the MIC is computed thanks to network security key.&lt;br /&gt;
If the computed MIC matches with the received MIC then the payload is deciphered thanks to application security key and the resulting payload is pushed to the application addressed by the LoRaWAN port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+MAC=SMC ===&lt;br /&gt;
&lt;br /&gt;
Set MultiCast parameters.&lt;br /&gt;
  AT+MAC=SMC,&amp;amp;lt;addr&amp;amp;gt;,&amp;amp;lt;addr_mask&amp;amp;gt;,&amp;amp;lt;group_mask&amp;amp;gt;,&amp;amp;lt;fcnt_dw&amp;amp;gt;,&amp;amp;lt;net_skey&amp;amp;gt;,&amp;amp;lt;app_skey&amp;amp;gt;&lt;br /&gt;
See AT+MAC=RMC for parameter description.&lt;br /&gt;
&lt;br /&gt;
'''The multicast parameters are not saved in non volatile memory, thus they are lost after a cold reset (reset pin or power-cycle).'''&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the command is supported by the firmware and the parameters are valid.&lt;br /&gt;
&lt;br /&gt;
ERROR when it is not supported or parameters are invalid (especially &amp;amp;lt;group_mask&amp;amp;gt; parameter which can take 7 different values).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+MAC=SMC,789ABCDE,FFFFFFFC,00000007,0,0102030405060708090A0B0C0D0E0F00,0102030405060708090A0B0C0D0E0F00&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Send a Device Time Request.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR,&amp;amp;lt;nb_tx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; = 0 means the DTR message is sent in unack mode on port 0.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;nb_tx&amp;amp;gt; != 0 means the DTR message is sent in ack mode on port 0. Since LoRaWANV1.0.4 the &amp;amp;lt;nbtrans&amp;amp;gt; parameter is also used in acknowledged mode (see RDR/SDR commands), thus if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;lt;= &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent &amp;amp;lt;nbtrans&amp;amp;gt; times, if &amp;amp;lt;nb_tx&amp;amp;gt; &amp;gt; &amp;amp;lt;nbtrans&amp;amp;gt; then the frame will be sent 2*&amp;amp;lt;nbtrans&amp;amp;gt; times, ...&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if MAC is ON and Device Time Answer has been received.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if MAC is OFF or Device Time Answer has not been received and Tx was in unack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR NOACK if Device Time Answer has not been received and Tx was in ack mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR also if SIGFOX™ stack is using the radio.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Received data is sent back as&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;epoch_sec&amp;amp;gt;,&amp;amp;lt;epoch_frac_sec&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SNDDTR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 1299856311,60&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Default MM002 firmware embeds only one LoRaWAN context&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: &amp;amp;lt;ctx_idx&amp;amp;gt;,&amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=RCTX&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+MAC: 0,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select LoRaWAN context.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command can be used when the MM002 firmware embeds several LoRaWAN contexts.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,&amp;amp;lt;ctx_idx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;The parameter list can be found by '''''AT+MAC=SCTX?''''' command.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if &amp;amp;lt;ctx_idx&amp;amp;gt; &amp;lt; &amp;amp;lt;nb_ctx&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;To select first LoRaWAN context:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+MAC=SCTX,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Informative examples ===&lt;br /&gt;
==== Device start ====&lt;br /&gt;
&lt;br /&gt;
AT client application can detect a device start or restart when the unsolicited response +DEBUG: START,&amp;amp;lt;version&amp;amp;gt; is received. Depending on initialization timing, AT client application is not sure to receive this unsolicited response, that’s the reason why it is recommended that AT client application use AT+MAC=? command to synchronize with the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''OTAA case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0,0.1.0.0,1.0.4.0,1.0.1.0 &lt;br /&gt;
 OK&lt;br /&gt;
 AT+MAC=RDEVADDR&lt;br /&gt;
 +MAC: 00000000,000000 &lt;br /&gt;
 OK&lt;br /&gt;
 +MAC: RDEVADDR,0870C367,010203 &lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''ABP case:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,nemeus-mm002-21W21_00-modem&lt;br /&gt;
 AT+MAC=?&lt;br /&gt;
 +MAC: ON,V3,A,1,8,0 &lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
The device is ready to send uplink frames.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Send unconfirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''No downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,0 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
==== Send confirmed binary frame ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack received, no downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,0,false,,-60.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Ack not received:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,,0.00,0.00 &lt;br /&gt;
 ERROR NOACK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''One downlink frame:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DECA,-85.00,7.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is not set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Two downlink frames and piggyback is set:'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+MAC=SNDBIN,CAFE,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,true,DECA,-55.00,10.00 &lt;br /&gt;
 OK &lt;br /&gt;
 AT+MAC=SNDBIN,,0,2,1 &lt;br /&gt;
 +MAC: RCVBIN,2,false,DEFC,-73.00,9.00 &lt;br /&gt;
 OK &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AT SIGFOX™ commands ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
These commands are available only on Nemeus modules embedding SIGFOX™ library. If the library is not embedded then ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
3 type of AT strings are specified:&lt;br /&gt;
&lt;br /&gt;
* SF commands: AT+SF=&amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;.&lt;br /&gt;
* SF solicited responses: +SF: &amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are sent in response to SF commands, just before the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is not present in the solicited responses. Several solicited responses may be sent between the SF command and the OK response.&lt;br /&gt;
* SF unsolicited responses: +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param1&amp;amp;gt;,…,&amp;amp;lt;paramN&amp;amp;gt;. These responses are not necessarily sent between the SF command and the OK response, that’s the reason why the &amp;amp;lt;cmd&amp;amp;gt; is present in the unsolicited responses.&lt;br /&gt;
 &lt;br /&gt;
When an AT client application just need to send and receive frames, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
* AT+SF=? to know the current SIGFOX™ layer state.&lt;br /&gt;
* AT+SF=OFF and AT+SF=ON to stop and start SIGFOX™ layer.&lt;br /&gt;
* AT+SF=SNDBIN,… to send uplink frame.&lt;br /&gt;
* AT+SF=SNDBIT,… to send uplink bit.&lt;br /&gt;
* AT+SF=SNDOOB to send uplink out of band message (keep alive messages).&lt;br /&gt;
* +SF: RCVBIN,… when receiving downlink frames.&lt;br /&gt;
 &lt;br /&gt;
All other commands are not really required, they are mainly used to configure SIGFOX™ layer and to perform SIGFOX™ qualification tests.&lt;br /&gt;
&lt;br /&gt;
SIGFOX™ proprietary AT command set is also supported but not described in this document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=HELP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt; are ON,OFF,?,SNDBIN,SNDBIT,SNDOOB,SREP,RREP,STXF,RTXF,SRXF,RRXF,STXP,RTXP&lt;br /&gt;
 +SF: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=ON ===&lt;br /&gt;
&lt;br /&gt;
This command is used to start SIGFOX™ layer and is mandatory in order to use most of SF commands listed in this section (unless otherwise stated).&lt;br /&gt;
&lt;br /&gt;
If Radio stack was ON, it is automatically set to OFF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=ON,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc_sync_period&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; values: 0 means MM002 doesn't manage duty-cycle, 1 means MM002 manages duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; values: 0 means Sigfox library doesn't encrypt the payload, 1 means Sigfox library encrypts the payload&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc_sync_period&amp;amp;gt; by default, when payload is encrypted, a RC Sync frame is transmitted by the device every 4096 messages transmissions (ie. when the sequence number loops to 0) to 're-synchronize' the device with the backend. This period can be modified but should not.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; string values: RC1, RC2, RC3C, RC4 and RC7. Be careful, selected RC must be compatible with the module hardware version&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If LoRa™WAN stack is using the radio &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;or the command is syntactically incorrect,&amp;lt;/span&amp;gt; ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=ON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=OFF ===&lt;br /&gt;
&lt;br /&gt;
Stop SIGFOX™ layer.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ stack is using the radio ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
Else OK is returned.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=OFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SF=? ===&lt;br /&gt;
&lt;br /&gt;
Read current SIGFOX™ layer status.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
If SIGFOX™ library is embedded OK is returned.&lt;br /&gt;
&lt;br /&gt;
Else ERROR is returned.&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;state&amp;amp;gt;,&amp;amp;lt;NMS_lib_ver&amp;amp;gt;,&amp;amp;lt;SFX_lib_ver&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt;&amp;lt;/span&amp;gt;,&amp;amp;lt;dev_id&amp;amp;gt;,&amp;amp;lt;initial_pac&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;dc&amp;amp;gt;,&amp;amp;lt;encrypt&amp;amp;gt;,&amp;amp;lt;rc&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;state&amp;amp;gt; is ON, OFF or DUAL. DUAL means that LoRa™WAN and SIGFOX™ stacks are both ON.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;NMS_lib_ver&amp;amp;gt; is the version of Nemeus library used to communicate with SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;SFX_lib_ver&amp;amp;gt; is the version of SIGFOX™ library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;SFX_test_lib_ver&amp;amp;gt; is the version of the addon for test mode&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;dev_id&amp;amp;gt; is the device unique identifier on SIGFOX™ network.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;initial_pac&amp;amp;gt; is the first Portability Access Code used to register the device on SIGFOX™ network. It is used one time for first registration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;dc&amp;amp;gt; is the management of the duty-cycle&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;encrypt&amp;amp;gt; is the payload encryption setting&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;rc&amp;amp;gt; is the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 AT+SF=?&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: ON,NMS-SFX-LIB-2.1,V2.8.1_FDL,V0.6.0,FEDCBA98,5441535420304143,1,0,RC1&amp;lt;/span&amp;gt;&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIN === &lt;br /&gt;
Binary frame transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the frame is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the frame is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
The frame is sent when channel becomes free regarding duty cycle limitations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIN,CAFE,1&lt;br /&gt;
 +SF: SND,4576&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 6282&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDBIT === &lt;br /&gt;
Bit transmission.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SNDBIT,&amp;amp;lt;bitvalue&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 0 then the bit is sent in unacknowledged mode (default value when &amp;amp;lt;ack&amp;amp;gt; is omitted).&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;lt;ack&amp;amp;gt; value is 1, then the bit is sent in acknowledged mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed and each Rx performed the following responses are sent after the OK/ERROR result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: RXINFO,&amp;amp;lt;rx_index&amp;amp;gt;,&amp;amp;lt;rx_freq&amp;amp;gt;,&amp;amp;lt;rx_duration&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it is used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent (and acked if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent (or not acked after repetitions if ack mode was requested).&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
 &lt;br /&gt;
The unsolicited response below is sent when ack mode was requested &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;and a downlink payload has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+SF: RCVBIN,&amp;amp;lt;binpayload&amp;amp;gt;,&amp;amp;lt;rssi&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDBIT,0,1&lt;br /&gt;
 +SF: SND,6422&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
 +SF: RCVBIN,0123456789ABCDEF,-85.00&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SNDOOB ===&lt;br /&gt;
&lt;br /&gt;
Out Of Band message transmission.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SNDOOB,&amp;amp;lt;add_tx_rx_info&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;if &amp;amp;lt;add_tx_rx_info&amp;amp;gt; &amp;gt; 0 then for each transmission performed the following response is sent after the OK result:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: TXINFO,&amp;amp;lt;tx_index&amp;amp;gt;,&amp;amp;lt;tx_freq&amp;amp;gt;,&amp;amp;lt;toa&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+SF: &amp;amp;lt;time_on_air&amp;amp;gt; is sent just before the solicited response OK. The time on air is in ms, it can be used by client application to manage duty cycle.&lt;br /&gt;
&lt;br /&gt;
OK if SIGFOX™ layer is ON and frame has been successfully sent.&lt;br /&gt;
&lt;br /&gt;
ERROR if SIGFOX™ layer is OFF or frame has not been successfully sent.&lt;br /&gt;
&lt;br /&gt;
==== Unsolicited responses ====&lt;br /&gt;
&lt;br /&gt;
An indication about Tx date:&lt;br /&gt;
&lt;br /&gt;
+SF: SND,&amp;amp;lt;busytime&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;busytime&amp;amp;gt; is in ms.&lt;br /&gt;
&lt;br /&gt;
It can be sent 2 times:&lt;br /&gt;
&lt;br /&gt;
* One time with busytime &amp;amp;gt; 0 if Tx subband was not free due to duty cycle restriction&lt;br /&gt;
* One time with busytime = 0 at Tx time.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SNDOOB&lt;br /&gt;
 +SF: SND,3987&lt;br /&gt;
 +SF: SND,0&lt;br /&gt;
 +SF: 4589&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RREP ===&lt;br /&gt;
&lt;br /&gt;
Read Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RREP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SREP === &lt;br /&gt;
&lt;br /&gt;
Set Tx repetitions used in acked mode.&lt;br /&gt;
&lt;br /&gt;
AT+SF=SREP,&amp;amp;lt;repeatnb&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library always uses 2 repetitions&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SREP,1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXF ===&lt;br /&gt;
&lt;br /&gt;
Read output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 868.130 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 923.200 MHz as uplink center frequency, spectrum access is LBT.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.200 MHz as uplink start frequency and the channels activated by the config words (see AT+SF=RCFG command), spectrum access is FH.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 868.800 MHz as uplink center frequency, spectrum access is DC.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXF === &lt;br /&gt;
Set output carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant uplink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXF,868200000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RRXF ===&lt;br /&gt;
&lt;br /&gt;
Read reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC1 uses 869.525 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC2 uses 905.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC3C uses 922.200 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC4 uses 902.300 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RC7 uses 869.100 MHz as downlink center frequency.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RRXF&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=SRXF === &lt;br /&gt;
Set reception carrier macro channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because Sigfox library uses constant downlink macro channel depending on the selected RC&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=SRXF,869525000&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=RTXP (for test purpose) ===&lt;br /&gt;
&lt;br /&gt;
Read Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=RTXP&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SF=STXP (for test purpose) === &lt;br /&gt;
Set Tx power applied to FSK continuous wave&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This command is no more supported because not needed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SF=STXP,10&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read selected key (private or public).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;use_public&amp;amp;gt; values: 0 means private key, 1 means public key&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RKEY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Select private or public key.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,&amp;amp;lt;use_public&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if Sigfox layer is ON, ERROR if it is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SKEY,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM (for certification tests)&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Start test mode.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,&amp;amp;lt;mode&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;mode&amp;amp;gt; values:&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;0: SFX_TEST_MODE_TX_BPSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;1: SFX_TEST_MODE_TX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;2: SFX_TEST_MODE_RX_PROTOCOL&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;3: SFX_TEST_MODE_RX_GFSK&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;4: SFX_TEST_MODE_RX_SENSI&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;5: SFX_TEST_MODE_TX_SYNTH&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;6: SFX_TEST_MODE_TX_FREQ_DISTRIBUTION&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;11: SFX_TEST_MODE_TX_BIT&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;12: SFX_TEST_MODE_PUBLIC_KEY&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;13: SFX_TEST_MODE_NVM&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;When the test expects the receipt of downlink the following responses are sent for each downlink:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS &amp;amp;lt;rssi&amp;amp;gt; when downlink frame has been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;FAIL when downlink frame hasn't been received&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK or ERROR according to final result&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=TM,2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -45&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PASS -57&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read Info about LBT transmission.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cs_attempt&amp;amp;gt;,&amp;amp;lt;nb_sent_frame&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC or FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 1,3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RI&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Read FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Always OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: &amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Each &amp;amp;lt;cfg_word[]&amp;amp;gt; is encoded as 8 hexa digits&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is FH:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 902.2MHz | 902.5MHz | 902.8MHz | 903.1MHz | 903.4MHz | 903.7MHz | 904.0MHz | 904.3MHz | 904.6MHz | ...     ...      | 911.5MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 1    | Chn 2    | Chn 3    | Chn 4    | Chn 5    | Chn 6    | Chn 7    | Chn 8    | Chn 9    | ...     ...      | Chn 32   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 911.8MHz | 912.1MHz | 912.4MHz | 912.7MHz | 913.0MHz | 913.3MHz | 913.6MHz | 913.9MHz | 914.2MHz | ...     ...      | 921.1MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 33   | Chn 34   | Chn 35   | Chn 36   | Chn 37   | Chn 38   | Chn 39   | Chn 40   | Chn 41   | ...     ...      | Chn 64   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ...     ...      | bit 31   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value MHz : | 921.4MHz | 921.7MHz | 922.0MHz | 922.3MHz | 922.6MHz | 922.9MHz | 923.2MHz | 923.5MHz | 923.8MHz | ... | 927.7MHz |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Macro Channel Value     : | Chn 65   | Chn 66   | Chn 67   | Chn 68   | Chn 69   | Chn 70   | Chn 71   | Chn 72   | Chn 73   | ... | Chn 86   |&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] bit         : | bit 0    | bit 1    | bit 2    | bit 3    | bit 4    | bit 5    | bit 6    | bit 7    | bit 8    | ... | bit 21   |&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; enable(1)/disable(0) the timer feature&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is LBT:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] : number of attempts to send the first frame [ has to be greater or equal to 1]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] : maximum carrier sense sliding window (in ms) [ has to be greater than 6 ms ( CS_MIN_DURATION_IN_MS + 1 ) ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] :&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 8   : set the value to 1 to indicate that the device will use the full operationnal radio band.( 192kHz )&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 7-3 : number of Carrier Sense attempts.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;                  . bit 2-0 : number of frames sent.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;If selected RC is DC:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[0] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[1] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;cfg_word[2] is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;amp;lt;timer_enable&amp;amp;gt; is not used&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC1 (DC):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000000,00000000,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=RCFG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;+SF: 00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG&amp;lt;/span&amp;gt; === &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Set FH or LBT config words.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,&amp;amp;lt;cfg_word[0]&amp;amp;gt;,&amp;amp;lt;cfg_word[1]&amp;amp;gt;,&amp;amp;lt;cfg_word[2]&amp;amp;gt;,&amp;amp;lt;timer_enable&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Response&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK if parameters are valid and Sigfox layer is OFF&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ERROR if parameters are invalid or Sigfox layer is ON&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC2 (FH):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000001,00000000,00000000,1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Selected RC is RC3C (LBT):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AT+SF=SCFG,00000003,00001388,00000000,0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT Generic command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT Generic command can be used to activate/deactivate some generic functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8801 ===&lt;br /&gt;
&lt;br /&gt;
This command is use to know the status of PowerSaving.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,0801&amp;amp;lt;pwr_state&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,8801&lt;br /&gt;
&lt;br /&gt;
+GA : DIND,1,080100&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+GA= DIND,1,8802&amp;amp;lt;pwr_state&amp;amp;gt; ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''WARNING: CONNECT CORRECTLY THE WAKEUP PIN BEFORE ACTIVATION OF POWERSAVING'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This command is use to set the PowerSaving.&lt;br /&gt;
pwr_state 00 powersaving OFF&lt;br /&gt;
pwr_state 01 powersaving ON&lt;br /&gt;
&lt;br /&gt;
PowerSaving can be activated once after boot-up, and from this point will go in stop mode as soon as possible and is wake-up by RTC or Wakeup pin.&lt;br /&gt;
Please note that once power-saving is activated, user should toggle wake-up pin before sending an AT command.&lt;br /&gt;
&lt;br /&gt;
If the module is reset, the powersaving is set back to OFF. So User should ensure setting it to ON after any reset&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+GA= DIND,1,880201&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== AT debug command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT debug command can be used to activate/deactivate some debug functionalities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= HELP ===&lt;br /&gt;
&lt;br /&gt;
This commandis use to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= HELP&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt; are MVER,MVOFF,MVON,MV?,MEOFF,MEON,ME?,MPOFF,MPON,MP?,RREAD,RWRITE&lt;br /&gt;
 +DEBUG: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG=MVER ===&lt;br /&gt;
&lt;br /&gt;
Read Mcu software version.&lt;br /&gt;
&lt;br /&gt;
Furthermore, when the device boots the software version is sent as an unsolicited response:&lt;br /&gt;
&lt;br /&gt;
+DEBUG: START,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This unsolicited response can be used to detect a reset of the device.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: MVER,&amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
AT boot:&lt;br /&gt;
&lt;br /&gt;
 +DEBUG: START,Nemeus 1.x&lt;br /&gt;
&lt;br /&gt;
When requested:&lt;br /&gt;
&lt;br /&gt;
 AT+DEBUG= MVER&lt;br /&gt;
 +DEBUG: MVER,Nemeus 1.x&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MVON ===&lt;br /&gt;
&lt;br /&gt;
Enable Mcu Verbose print on the UART&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK if software is compiled with debug traces.&lt;br /&gt;
&lt;br /&gt;
ERROR if software is compiled without debug traces.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MV? ===&lt;br /&gt;
&lt;br /&gt;
Read current verbose mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;verbose&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MV?&lt;br /&gt;
 +DEBUG: MVON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MEON ===&lt;br /&gt;
&lt;br /&gt;
Enable UART echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= ME? ===&lt;br /&gt;
&lt;br /&gt;
Read current echo mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;echo&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= ME?&lt;br /&gt;
 +DEBUG: MEON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPOFF ===&lt;br /&gt;
&lt;br /&gt;
Disable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPOFF&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MPON ===&lt;br /&gt;
&lt;br /&gt;
Enable the sending of shell prompt on UART.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MPON&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+DEBUG= MP? ===&lt;br /&gt;
&lt;br /&gt;
Read current prompt mode.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&lt;br /&gt;
+DEBUG: &amp;amp;lt;prompt&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+DEBUG= MP?&lt;br /&gt;
 +DEBUG: MPON&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== AT Static Context Header Compression (SCHC) command ==&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
AT SCHC command can be used to communicate through Acklio IPCore network.&lt;br /&gt;
 Currently, the default firmware doesn't support SCHC command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== AT+SCHC=HELP ===&lt;br /&gt;
&lt;br /&gt;
This command is used to know the list of sub-commands.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=HELP&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;,&amp;amp;lt;param_1&amp;amp;gt;,…,&amp;amp;lt;param_N&amp;amp;gt;&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt; are VER,RL2,SL2,RSTATE,SSTATE,SOCKET,RSOCKET,CLOSE,BIND,SENDTO&lt;br /&gt;
 +SCHC: &amp;amp;lt;cmd&amp;amp;gt;? Lists parameters of &amp;amp;lt;cmd&amp;amp;gt; if any&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=VER ===&lt;br /&gt;
&lt;br /&gt;
Read version of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;version&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;version&amp;amp;gt;: the library version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=VER&lt;br /&gt;
 +SCHC: 2.0.0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RL2 ===&lt;br /&gt;
&lt;br /&gt;
Read available L2 which can be used by SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;l2_type&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the identifier which addresses the L2&lt;br /&gt;
 &amp;amp;lt;l2_type&amp;amp;gt;: 0 for LoRaWAN&lt;br /&gt;
 &amp;amp;lt;join_chan_mask&amp;amp;gt;: channels used by join procedure 0 for ABP mode, 1 for 868.1 channel, 2 for 868.3 channel, 4 for 868.5 channel, 7 for all default channels&lt;br /&gt;
 &amp;amp;lt;join_dr&amp;amp;gt;: data rate to start the join procedure (0 to 5)&lt;br /&gt;
 &amp;amp;lt;first_dr&amp;amp;gt;: data rate of the first uplink frame sent after the join procedure&lt;br /&gt;
 &amp;amp;lt;adr&amp;amp;gt;: ADR bit (0 or 1)&lt;br /&gt;
 &amp;amp;lt;nb_trans&amp;amp;gt;: number of transmissions of unconfirmed frames (0 to 15)&lt;br /&gt;
 &amp;amp;lt;piggyback&amp;amp;gt;: piggyback enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;backoff&amp;amp;gt;: backoff when confirmed frames are unacked enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;force_dr&amp;amp;gt;: forced data rate (15 means do not force, use current one)&lt;br /&gt;
 &amp;amp;lt;ack&amp;amp;gt;: ack mode enable(1)/disable(0)&lt;br /&gt;
 &amp;amp;lt;class_c&amp;amp;gt;: device class C enable(1)/disable(0)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RL2&lt;br /&gt;
 +SCHC: 0,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SL2 ===&lt;br /&gt;
&lt;br /&gt;
Set L2 parameters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a LoRaWAN L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SL2,&amp;amp;lt;l2_id&amp;amp;gt;,&amp;amp;lt;join_chan_mask&amp;amp;gt;,&amp;amp;lt;join_dr&amp;amp;gt;,&amp;amp;lt;first_dr&amp;amp;gt;,&amp;amp;lt;adr&amp;amp;gt;,&amp;amp;lt;nb_trans&amp;amp;gt;,&amp;amp;lt;piggyback&amp;amp;gt;,&amp;amp;lt;backoff&amp;amp;gt;,&amp;amp;lt;force_dr&amp;amp;gt;,&amp;amp;lt;ack&amp;amp;gt;,&amp;amp;lt;class_c&amp;amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Sigfox L2:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SL2,0,7,0,15,1,0,0,0,15,0,1&lt;br /&gt;
 OK&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSTATE ===&lt;br /&gt;
&lt;br /&gt;
Read current state of SCHC stack.&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;r_state&amp;amp;gt;: the current SCHC stack state: 0 when stack is off, 1 when stack is initializing (joining when LoRaWAN L2), 2 when stack is idle, 3 when stack is transmitting&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 used by SCHC stack&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSTATE&lt;br /&gt;
 +SCHC: 0,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SSTATE ===&lt;br /&gt;
&lt;br /&gt;
Set state of SCHC stack.&lt;br /&gt;
AT+SCHC=SSTATE,&amp;amp;lt;s_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;s_state&amp;amp;gt;: the requested SCHC stack state: 0 to switch-off the stack, 1 to initialize the stack&lt;br /&gt;
 &amp;amp;lt;l2_id&amp;amp;gt;: the L2 the SCHC stack must use&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when stack state changes):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RSTATE,&amp;amp;lt;r_state&amp;amp;gt;,&amp;amp;lt;l2_id&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
Switch-on the stack with l2_id 0&lt;br /&gt;
 AT+SCHC=SSTATE,1,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,1,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
Switch-off the stack&lt;br /&gt;
 AT+SCHC=SSTATE,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RSTATE,0,0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SOCKET ===&lt;br /&gt;
&lt;br /&gt;
Create a socket.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=SOCKET,&amp;amp;lt;ip_version&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;ip_version&amp;amp;gt;: 4 for IPv4, 6 for IPv6&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE for no compression, LIGHT for light compression, FULL for full compression&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid, maximum number of sockets (1) is not reached and SCHC stack is on.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SOCKET,6,FULL&lt;br /&gt;
 +SCHC: 0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=RSOCKET ===&lt;br /&gt;
&lt;br /&gt;
List all created sockets.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AT+SCHC=RSOCKET&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
Always OK.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response to command:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For each socket:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: &amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;,&amp;amp;lt;compression&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the bound IP address (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;compression&amp;amp;gt;: NONE, LIGHT or FULL&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=RSOCKET&lt;br /&gt;
 +SCHC: 0,01020304,CDDC,LIGHT&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=BIND ===&lt;br /&gt;
&lt;br /&gt;
Bind a socket on local IP address and port.&lt;br /&gt;
AT+SCHC=BIND,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;ip_addr&amp;amp;gt;,&amp;amp;lt;port&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;ip_addr&amp;amp;gt;: the IP address to bind (32 characters for IPv6 and 8 characters for IPv4)&lt;br /&gt;
 &amp;amp;lt;port&amp;amp;gt;: the port to bind&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when all specified parameters are valid and the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=BIND,0,01020304,CDDC&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=CLOSE ===&lt;br /&gt;
&lt;br /&gt;
Close a socket.&lt;br /&gt;
AT+SCHC=CLOSE,&amp;amp;lt;sock_id&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=CLOSE,0&lt;br /&gt;
 OK&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== AT+SCHC=SENDTO ===&lt;br /&gt;
&lt;br /&gt;
Send a frame on a socket.&lt;br /&gt;
AT+SCHC=SENDTO,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;dest_ip_addr&amp;amp;gt;,&amp;amp;lt;dest_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;dest_ip_addr&amp;amp;gt;: destination IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;dest_port&amp;amp;gt;: destination port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the payload to send (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Response ====&lt;br /&gt;
&lt;br /&gt;
OK when the addressed socket exists, there is no ongoing transmission and the transmission succeeded&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unsolicited response (when downlink payload is received):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+SCHC: RCVFROM,&amp;amp;lt;sock_id&amp;amp;gt;,&amp;amp;lt;src_ip_addr&amp;amp;gt;,&amp;amp;lt;src_port&amp;amp;gt;,&amp;amp;lt;payload&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;sock_id&amp;amp;gt;: the socket identifier&lt;br /&gt;
 &amp;amp;lt;src_ip_addr&amp;amp;gt;: source IP address (32 or 8 characters)&lt;br /&gt;
 &amp;amp;lt;src_port&amp;amp;gt;: source port (4 characters)&lt;br /&gt;
 &amp;amp;lt;payload&amp;amp;gt;: the received payload (hexa string)&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
 AT+SCHC=SENDTO,0,01020304,FDDF,CAFEDECA&lt;br /&gt;
 +SCHC: RSTATE,3,0&lt;br /&gt;
 +SCHC: RSTATE,2,0&lt;br /&gt;
 OK&lt;br /&gt;
 +SCHC: RCVFROM,0,01020304,FDDF,CAFECAFE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elc</name></author>	</entry>

	</feed>