The AT command set, also known as the Hayes command set, was originally developed for use with the Hayes modems in the 1980s. Many modern dialup modems are still based around this standard. The term AT command comes from the use of the ASCII characters AT to notify the host modem that a command will follow. These characters are sent before each command and were originally used as an abbreviation for the word attention.
Digi uses a proprietary set of commands patterned after the AT command set to interface with Digi radio modems through a serial port or voltage compatible UART. In the pattern of the original AT command set, Digi uses the characters AT before each command sent to the modems. An example of a command used by the Digi XBee radio would be the ATCH command. This command is used to read or set the channel that an XBee radio is configured to.
The image below shows the terminal window of X-CTU. To put the modem into command mode, the user enters three + symbols and the modem responds with "OK". The user then enters ATCH and presses return. The modem responds back by displaying the current channel "C". The user then enters ATCHD to change the channel to D. The modem responds with "OK" after the channel is then set to D. The user can then verify the channel change by typing ATCH and pressing return.
When an AT command is sent, it does not get written to non-volatile memory. Any changes made to parameters will only be set until the module is powered down or reset, then it will revert to what was configured on the module previously. In order to write AT command changes perminently, you must issue the ATWR command. If multiple parameters were set with AT commands, ATWR will save all of them. So ATWR only needs to be sent once regardless of how many parameters were changed.
Normally the module will automatically exit command mode after 10 seconds (depending on the CT parameter), ATCN will exit out of command mode immediately and return the module to normal operation. This command is not required and is primarily used to save time or when sending AT commands using a microcontroller or script.