Serial protocol

Devices that don't have a direct internet connection can connect to the remote management service over serial. This is done via the serial daemon, which is an application that runs on a host machine. The serial daemon connects to a device over a serial port, and sends AT commands back and forth to the device. If your device implements all AT commands on this page, the serial daemon should work as-is on your device.

Communication between host and device is done with the following settings:

  • Baud rate 115200.

  • Data bits: 8.

  • Return key: CR.

A comprehensive test suite for devices implementing this protocol is located here: edgeimpulse/integration-tests-firmware.

Overview of all commands

This overview should be printed when AT+HELP is issued.

AT+HELP - Lists all commands
AT+CLEARCONFIG - Clears complete config and resets system
AT+CLEARFILES - Clears all files from the file system, this does not clear config
AT+CONFIG? - Lists complete config
AT+DEVICEINFO? - Lists device information
AT+SENSORS? - Lists sensors
AT+RESET - Reset the system
AT+WIFI? - Lists current WiFi credentials
AT+WIFI= - Sets current WiFi credentials (SSID,PASSWORD,SECURITY) (3 parameters)
AT+SCANWIFI - Scans for WiFi networks
AT+SAMPLESETTINGS? - Lists current sampling settings
AT+SAMPLESETTINGS= - Sets current sampling settings (LABEL,INTERVAL_MS,LENGTH_MS) (3 parameters)
AT+SAMPLESETTINGS= - Sets current sampling settings (LABEL,INTERVAL_MS,LENGTH_MS,HMAC_KEY) (4 parameters)
AT+UPLOADSETTINGS? - Lists current upload settings
AT+UPLOADSETTINGS= - Sets current upload settings (APIKEY,PATH) (2 parameters)
AT+UPLOADHOST= - Sets upload host (HOST) (1 parameter)
AT+MGMTSETTINGS? - Lists current management settings
AT+MGMTSETTINGS= - Sets current management settings (URL) (1 parameter)
AT+LISTFILES - Lists all files on the device
AT+READFILE= - Read a specific file (as base64) (1 parameter)
AT+READBUFFER= - Read from the temporary buffer (as base64) (START,LENGTH) (2 parameters)
AT+UNLINKFILE= - Unlink a specific file (1 parameter)
AT+UPLOADFILE= - Upload a specific file (1 parameter)
AT+SAMPLESTART= - Start sampling (1 parameter)

Custom commands

It's allowed to add custom commands. For example, these commands are implemented in the Edge Impulse firmware for the ST B-L475E-IOT01A, but are not used by the serial daemon.

AT+FILLMEMORY - Try and fill the full RAM, to report free heap stats
AT+RUNIMPULSE - Run the impulse
AT+RUNIMPULSEDEBUG - Run the impulse with debug messages

System commands


Clears the complete configuration, and resets the system. Has no return value. Example:

Clearing config and restarting system...

Hello from the Edge Impulse Device SDK.

Afterwards all settings should be reset.


Restarts the system, but leaves all configuration intact. Has no return value. Example:


Hello from the Edge Impulse Device SDK.

Full configuration


Lists all configuration options, grouped by category. Lines with category names start and end with =====. Lines with configuration options follow key: value, with arbitrary whitespace between : and the value. Example: