Skip to main content

AT Commands Reference

This page lists every AT command implemented by the GLIDER firmware. AT commands are issued through the USB-C console.

tip

Looking for the Zephyr shell counterparts (used via J-Link, or via AT$SHELL="…" from the AT console)? See the Shell Commands page.

The parser is HARDWARIO's ATCI (AT Command Interpreter). Every command starts with the AT prefix; some accept four different operations described below.

1. ATCI syntax

The ATCI parser supports four operations per command AT<CMD>:

TypeFormMeaning
ActionAT<CMD>Execute the action with no parameters.
SetAT<CMD>=<value>Write / configure.
ReadAT<CMD>?Read the current value.
TestAT<CMD>=?Get metadata: range, type, default, help.

Asynchronous broadcasts

The device occasionally emits unsolicited messages, for example after boot:

BroadcastWhen
@BOOTEmitted after app_init has finished.
@LOG:<level>:<message>Log lines from the firmware.

2. Command catalogue

2.1 System / session management

CommandOperationDescription
AT+CLACactionList every registered AT command.
AT$HELPactionSame as AT+CLAC but with hints.
AT$CRC=<0|1|2>setCRC mode: 0 off, 1 strict, 2 optional.
AT$CRC?readCurrent CRC mode.
AT$SHELL="<command>"setRun any Zephyr shell command and stream its output back as $SHELL: "<line>".
AT$REBOOTactionReboot the device (requires CONFIG_HIO_ATCI_CMD_REBOOT=y).

2.2 Device information (hio_info)

CommandOperationReply / description
ATIaction"<product-name>[-<hw-variant>]-<hw-revision>"
AT+CGMIaction+CGMI: "<vendor-name>"
AT+CGMMaction+CGMM: "<product-name>"
AT+CGMRaction+CGMR: "<hw-revision>"
AT+CGSNaction+CGSN: "<serial-number>"
AT$INFO?readDump every info item as $INFO: "<key>","<value>".
AT$INFO="<key>"setRead a single item by key.
AT$INFO=?testPrint the info schema (keys, types, descriptions).

2.3 Configuration (hio_config)

CommandOperationDescription
AT$CONFIG?readDump every config item across all modules.
AT$CONFIG="<module>"setDump every item in the given module.
AT$CONFIG="<module>","<key>"setRead a single item.
AT$CONFIG="<module>","<key>",<value>setWrite an item (strings must be quoted).
AT$CONFIG=?testPrint the config schema: module, key, type, range, default, description.
AT&WactionSave the configuration to flash and reboot.
AT&FactionFactory reset all configuration and reboot.

Example - change the send interval

AT$CONFIG="app","interval-send",60
AT&W

2.4 Firmware update / DFU (hio_atci_cmd_fw)

CommandOperationDescription
AT$FW?readPrint confirmed, version, and swap type of the active image.
AT$FW="info"setDetailed dump of the primary and secondary slots (version, magic, swap state, image-ok, …).
AT$FW="start",<size>setStart a DFU session for an image of <size> bytes.
AT$FW="chunk",<offset>,"<hex>"setWrite a chunk of hex-encoded data at the given offset (the hex payload is wrapped in quotes).
AT$FW="done"setFinalize the transfer and schedule the swap on next boot.
AT$FW="confirm"setMark the running image as good after a successful test boot.

Typically you do not build the DFU stream by hand, use the west bin-to-at helper:

west bin-to-at --output-file update.at

With no --input-file, the tool picks up build/*/zephyr/zephyr.signed.bin automatically. Stream the resulting file into the AT console with:

west serial-console --input update.at

For the full step-by-step walk-through (including the post-reboot AT$FW="confirm"), see Application over AT (USB-C).

3. Error codes

CodeMeaning
ERROR: "Invalid command"Command does not start with AT (-ENOMSG).
ERROR: "Command not found"Unknown AT command (-ENOEXEC).
ERROR: "Command not supported"The command does not support the requested operation type (-ENOTSUP).
ERROR: "Invalid argument"Bad argument format (-EINVAL).
ERROR: "Permission denied"Insufficient authorization (-EACCES).
ERROR: "Out of memory"-ENOMEM.
ERROR: "I/O error"-EIO.
ERROR: "Invalid CRC format"The CRC suffix is malformed.
ERROR: "CRC mismatch"The CRC does not match the message.

4. Running shell commands from AT

AT$SHELL is the bridge to the Zephyr shell. Anything you can type into the RTT console can be executed through AT$SHELL as well:

AT$SHELL="therm state"
AT$SHELL="therm scan"
AT$SHELL="therm scan --save"
AT$SHELL="kernel reboot cold"
AT$SHELL="log disable"
AT$SHELL="log enable wrn"

The shell's stdout is streamed back as $SHELL: "<line>" lines, followed by OK (or ERROR).

The full set of shell commands is documented on the Shell Commands page.