Skip to main content

EOE-W55RP20 SNMP Module AT Command Guide

Firmware 1.2.0 · 61 commands

AT commands are exchanged on uart1 (GP4 TX / GP5 RX). The factory default is 115200 8N1, no flow control.

The console log goes out separately on uart0, so it never mixes into the AT port.

For installation and connecting an SNMP manager, see the SNMP Setup Guide.

ChapterContents
Chapter 1Syntax and rules
Chapter 2Command list
Chapter 3Device control
Chapter 4Network
Chapter 5SNMP agent and product identity
Chapter 6SNMPv3 users and communities
Chapter 7Objects and OID mapping
Chapter 8Notifications (Trap · Inform)
Chapter 9TCP · UDP socket channels
Chapter 10Web management
Chapter 11Firmware update (OTA)
Chapter 12URCs (unsolicited messages)
Chapter 13Error codes
Chapter 14Alphabetical index

1. Syntax and rules​

1.1 Forms​

AT                       check the module answers
AT+NAME=<value> set
AT+NAME? query
AT+NAME execute (action without arguments)
AT+NAME=? test (not executed)

Each command supports different forms. They are listed in the table in Chapter 2 Command list.

1.2 Rules​

ItemValue
CaseCommand names and keywords are case-insensitive
StringsEnclose in double quotes. A comma inside quotes is not a separator
NumbersDecimal and 0x hexadecimal are both accepted. Leading zeros are ignored (0161 = 161)
Line endingCR, LF and CRLF are all accepted. Responses always end with CRLF
Line length256 bytes maximum. Longer lines are not executed: ERROR:BUFFER_TOO_LONG
Arguments12 maximum
  • More arguments than required are refused. AT+IP="1.2.3.4",5 returns ERROR:INVALID_PARAMETER and the address is not changed.
  • A query must end at ?. AT+OBJVAL?900 and AT+VERSION?x return ERROR:INVALID_PARAMETER. No query takes arguments.
  • To skip an argument in the middle, keep its comma: AT+USMADD="mon",NOAUTHNOPRIV,,,,,MONITOR
  • Out-of-range values and negative numbers are refused as they are, never adjusted. A port number is 1 … 65535 in every command; outside that the result is ERROR:VALUE_OUT_OF_RANGE.
  • AT+NAME=? is the test form. The command is not executed; the answer is OK if it has a set form and ERROR:INVALID_COMMAND if it does not.

1.3 Responses​

Every command ends with a single OK on success or ERROR:<code> on failure (Chapter 13). Queries and some set commands send one or more +NAME:... lines before that.

AT+SNMPPORT?
+SNMPPORT:161
OK

1.4 When settings take effect​

Set commands change memory only. Storing to flash and actually applying the settings is done by AT+SAVE.

AT+NETMODE=STATIC
AT+IP="192.168.0.100"
AT+MASK="255.255.255.0"
AT+GW="192.168.0.1"
AT+SAVE

Commands that act immediately, without AT+SAVE:

CommandWhy
AT+OBJVAL · AT+SETACKValues, not settings
AT+SOCK*Channels are not stored
AT+TRAPSEND · AT+INFORMSENDSend actions
AT+OTAFWUPReceive action
AT+OIDMAPRELOAD · AT+OIDMAPCLEARChange the mapping directly
AT+FACTORY · AT+REBOOT · AT+OTAREBOOTReboot immediately

AT+OBJADD and AT+OBJDEL change the object table immediately, but without AT+SAVE the change is gone at the next boot.

1.5 Binary mode​

AT+SOCKSEND and AT+SOCKSENDTO declare a length first, then accept exactly that many bytes of raw data after the > prompt.

AT+SOCKSEND=0,5
> HELLO
+SOCKSEND:0,5
OK
  • In binary mode CR, LF, NUL and even the letters AT are all data.
  • No line break follows the > prompt. In the bytes the module sends, the result arrives on the same line as the prompt, as in > +SOCKSEND:0,5. A host that reads line by line should recognise the prompt as the two bytes > , not as a line, and strip a leading > from the result line.
  • Send all the declared bytes within 10 seconds of the prompt. After 10 seconds the command ends with ERROR:PAYLOAD_TIMEOUT, even if bytes are still arriving.
  • End command lines with CRLF. An LF right after a CR is taken as the end of the line and dropped, so a host that ends lines with CR alone loses the first byte of a payload that starts with LF (0x0A).
  • On a port configured for 7 bits or XONXOFF, the transfer is refused before it starts (ERROR:NOT_SUPPORTED).

1.6 Limits​

All lengths are in bytes. Non-ASCII characters take more than one byte in UTF-8 (a Korean character, for example, takes 3).

ItemLimitIf exceeded
AT line256BUFFER_TOO_LONG
Arguments12INVALID_PARAMETER
Socket send1460BUFFER_TOO_LONG
Object name19INVALID_PARAMETER
Object string value63INVALID_PARAMETER
String value of a PERSISTENT object44BUFFER_TOO_LONG
Object OID16 arcs, 20 bytes encodedOID_TOO_LONG
SNMPv3 user name32INVALID_PARAMETER
Authentication · privacy password63INVALID_PARAMETER
Community name32INVALID_PARAMETER
Web account23INVALID_PARAMETER
Web password63 (minimum 8)INVALID_PARAMETER
Socket host name63INVALID_PARAMETER
ItemCount
Objects1024 (of which 128 can be strings)
SNMPv3 users4
Communities4
Notification receivers4
Socket channels4

The string value limit depends on the path: 63 bytes over AT, 64 bytes over an SNMP SET, and 44 bytes for a PERSISTENT object (AT+OBJVAL).


2. Command list​

ColumnMeaning
SetSupports the AT+NAME=<value> form
QuerySupports the AT+NAME? form
ExecSupports the AT+NAME form
Save● means AT+SAVE is required. — means the command stores by itself

2.1 Device control (Chapter 3)​

CommandSetQueryExecSaveFunction
AT●Check the module answers
AT+SAVE●—Store settings to flash and apply
AT+REBOOT●—Close connections and reboot
AT+FACTORY●—Factory reset
AT+VERSION●Firmware, model, serial, product ID
AT+DIAG●Statistics and diagnostics
AT+UART●●●AT port settings

2.2 Network (Chapter 4)​

CommandSetQueryExecSaveFunction
AT+NETMODE●●●DHCP / STATIC
AT+IP●●●IP address
AT+MASK●●●Subnet mask
AT+GW●●●Gateway
AT+DNS●●●DNS server

2.3 SNMP agent (Chapter 5)​

CommandSetQueryExecSaveFunction
AT+SNMP●●●Agent on/off
AT+SNMPPORT●●●Listening port (default 161)
AT+SNMPVER●●●SNMP versions answered (default 3)
AT+ENGINEID●Engine ID (read-only)
AT+ENGINEBOOT●Engine boot count
AT+SYSOBJID●●●sysObjectID
AT+SYSDESCR●●●sysDescr (description)
AT+SYSNAME●●●sysName (host name)
AT+SYSCONTACT●●●sysContact (contact)
AT+SYSLOCATION●●●sysLocation (location)
AT+PRODUCTID●●●Product ID override
AT+PRODUCTARC●●●Product arc for automatic OID placement

2.4 Users and communities (Chapter 6)​

CommandSetQueryExecSaveFunction
AT+USMADD●●Add or change an SNMPv3 user (up to 4)
AT+USMDEL●●Delete a user
AT+USMUSER●List users
AT+COMMADD●●Add or change a community (up to 4)
AT+COMMDEL●●Delete a community
AT+COMM●List communities

2.5 Objects (Chapter 7)​

CommandSetQueryExecSaveFunction
AT+OBJADD●●※Define an object
AT+OBJATTR●●●※Object attributes (set mode, range, unit, description, default)
AT+OBJDEL●●※Delete an object
AT+OBJVAL●●Write and read values
AT+OBJ●Query object definitions
AT+SETACK●Answer a confirmed SET
AT+OIDMAP●Mapping status
AT+OIDMAPRELOAD●Re-apply the stored CSV
AT+OIDMAPCLEAR●Clear the user mapping

※ The object table changes immediately, but without AT+SAVE it is gone at the next boot.

2.6 Notifications (Chapter 8)​

CommandSetQueryExecSaveFunction
AT+TARGETADD●●Register a receiver (up to 4)
AT+TARGETDEL●●Delete a receiver
AT+TARGET●List receivers
AT+TARGETKEY●●Register a receiver's localized keys
AT+TRAPSEND●Send a Trap
AT+INFORMSEND●Send an Inform

2.7 Sockets (Chapter 9)​

CommandSetQueryExecSaveFunction
AT+SOCKAVAIL●Channels available to open
AT+SOCKSTATUS●Channel status list
AT+SOCKOPEN●Open a channel
AT+SOCKCLOSE●Close a channel
AT+SOCKSEND●Send (binary mode)
AT+SOCKSENDTO●UDP send to a given destination
AT+SOCKPEER●Default UDP peer
AT+SOCKOPT●●Socket options

2.8 Web (Chapter 10)​

CommandSetQueryExecSaveFunction
AT+WEB●●●Web interface on/off
AT+WEBUSER●●●Login account
AT+WEBPASS●●Set password (no query)
AT+WEBTIMEOUT●●●Session timeout

2.9 Firmware update (Chapter 11)​

CommandSetQueryExecSaveFunction
AT+OTAFWUP●Send firmware over UART
AT+OTASTATUS●Progress status
AT+OTACANCEL●Cancel an update
AT+OTAREBOOT●Reboot into the staged image

3. Device control​

AT (check the module answers)​

AT
OK

AT+SAVE (store and apply)​

AT+SAVE
OK

Stores the settings to flash and applies them (1.4).

  • Object definitions created with AT+OBJADD are stored at the same time.
  • Network, SNMP and web settings are re-applied only if they actually changed.
  • If the network settings change, all open sockets are closed.

AT+REBOOT (reboot)​

AT+REBOOT

After sending the response, closes the socket channels and the network services in turn and reboots. Peers receive a normal connection close, so no dead connection is left on their side.

AT+FACTORY (factory reset)​

AT+FACTORY="CONFIRM"
+FACTORY:COMPLETE

Erases the settings, stored object values and the stored OID CSV, then reboots.

ErasedKept
Network, SNMP and web settings, AT port settingsMAC address
SNMPv3 users, communitiesSerial number
Object definitions and values, OID mappingModel name, product ID
  • "CONFIRM" must match exactly, including case.
  • If an OTA image is staged, the command is refused with ERROR:OTA_PENDING.
  • The web interface and the FAC_RSTn pin (held for 5 seconds) also reset the device.
  • After the reset the AT port returns to 115200, 8, NONE, NONE.

AT+VERSION? (version and identity)​

AT+VERSION?
+VERSION:"1.2.0","EOE-ioNIC_SNMP","EOE-ioNIC_SNMP-0008DC360034",0x454F4501

Firmware version · model · serial · product ID currently in effect.

AT+DIAG? (statistics and diagnostics)​

AT+DIAG?
+DIAG:SOCKETS,<open>,<free>,<open failures>,<accept failures>,<exhaustion>
+DIAG:SNMP,<get>,<getnext>,<getbulk>,<set>,<access denied>
+DIAG:USM,<unknown user>,<wrong digest>,<decrypt error>,<outside time window>
+DIAG:PORT,<speed>,<bits>,<parity>,<flow control>,<DTR|NODTR>,<READY|HELD>
+DIAG:RXDROP,<dropped bytes>,<FIFO overrun 0|1>
+DIAG:STORAGE,<content>,<state>
+DIAG:ATTX,<queued items>,<queued bytes>,<dropped items>
+DIAG:WATCHDOG,<enabled>,<timeout ms>
+DIAG:CHIP,<OK|UNRESPONSIVE>,<checks>,<recoveries>
ValueIf non-zero
RXDROPThe module missed incoming bytes. Enable flow control or lower the speed
ATTX dropped itemsThe transmit queue was full and URCs or data were dropped
CHIP recoveriesThe Ethernet chip has been recovered at least once
USM wrong digestPassword or algorithm does not match the manager
  • PORT shows what this port is actually running at now. A difference from the stored value is reported by PENDING in AT+UART?.
  • If the last two PORT fields are NODTR,HELD, the host has lowered DTR and transmission is held.

AT+UART (AT port settings)​

AT+UART=<speed>,<data bits>,<parity>,<flow control>
AT+UART? → +UART:115200,8,NONE,NONE,ACTIVE
ArgumentValues
Speed9600 19200 38400 57600 115200 230400 460800 921600
Data bits7 · 8
ParityNONE · ODD · EVEN
Flow controlNONE · RTSCTS · DTRDSR · XONXOFF
  • All four arguments are required. Stop bits are always 1 and cannot be set.
  • Parity and flow control are given by name. Unknown names are refused.

When it takes effect​

AT+UART=230400,8,NONE,RTSCTS
OK
AT+SAVE
OK ← still 115200
AT+REBOOT ← applied here
Last field of AT+UART?Meaning
ACTIVEThe stored values match the current port settings
PENDINGStored but not yet applied. A reboot is required

Flow control​

ValueMethodDirection
NONENone (factory default)—
RTSCTSHardware. GP6 (module CTS) / GP7 (module RTS)Both
DTRDSRWatches DTR on GP8Module transmit only
XONXOFFIn-band 0x11 / 0x13Both

7 bits strips the top bit of every byte, and XONXOFF interprets 0x11 and 0x13 inside a payload as flow-control signals. Both change the data without reporting an error, so with these settings AT+SOCKSEND and AT+OTAFWUP are blocked entirely.

AT+UART=115200,7,EVEN,RTSCTS
+UART:BINARYOFF,7BIT
OK

Commands and responses are ASCII, so they still work at 7 bits. Only binary transfers are blocked.

A wrong setting is hard to undo. If the module comes up with new settings the host cannot match, the AT port cannot be used to recover. What remains is the web interface (Chapter 10) and the FAC_RSTn pin.

  • A speed not in the list returns ERROR:VALUE_OUT_OF_RANGE; an unknown name returns ERROR:INVALID_PARAMETER.
  • AT+FACTORY also returns these settings to their defaults.

4. Network​

AT+NETMODE (address assignment)​

AT+NETMODE=DHCP
AT+NETMODE=STATIC
AT+NETMODE? → +NETMODE:DHCP

AT+IP · AT+MASK · AT+GW · AT+DNS (address settings)​

AT+IP="192.168.0.100"
AT+MASK="255.255.255.0"
AT+GW="192.168.0.1"
AT+DNS="8.8.8.8"
AT+SAVE

AT+IP? → +IP:"192.168.0.100"

The factory default is STATIC 192.168.11.2 / 255.255.255.0 with gateway 192.168.11.1.

  • Set changes the value to be stored; query reads the value the module is using now. Under DHCP the two normally differ, because the leased address is not written to the settings.
  • AT+DNS? is the exception: it reports the DNS address the firmware is using.
  • If AT+SAVE actually changes the network settings, all open sockets are closed. Closed channels are not reopened automatically.

5. SNMP agent and product identity​

AT+SNMP (agent on/off)​

AT+SNMP=1
AT+SNMP=0
AT+SNMP? → +SNMP:1

AT+SNMPPORT (listening port)​

AT+SNMPPORT=161      1 … 65535
AT+SNMPPORT? → +SNMPPORT:161

The query reports the stored value. Until AT+SAVE, it can differ from the port that is actually open.

AT+SNMPVER (SNMP versions answered)​

AT+SNMPVER=3         v3 only (factory default)
AT+SNMPVER=2,3 v2c and v3
AT+SNMPVER=1,2,3 all three
AT+SNMPVER? → +SNMPVER:2,3

This is a list, not a single value. Setting only v2c turns v3 off, which also cuts the SNMPv3 access used to configure the device.

  • Requests in a version not in the list get no response; only an internal counter is incremented. That counter can be read over SNMP at 1.3.6.1.2.1.11.3.0 (snmpInBadVersions).
  • Listing the same version twice is refused (1,1 · 3,3).
  • An empty list returns ERROR:INVALID_PARAMETER. To stop the agent, use AT+SNMP=0.
  • Registering a community has no effect unless its version is enabled here.

Differences under v1​

v2c · v3v1
Counter64 valueGET returns noSuchName. GETNEXT skips the object
noSuchObject · noSuchInstance · endOfMibViewnoSuchName
A SET with a bad value (wrongType, wrongValue, wrongLength, ...)badValue
A target that cannot be written (notWritable, noCreation, noAccess)noSuchName
Anything else, such as commitFailedgenErr
GETBULKDoes not exist. A v1 message containing it gets no response

As a result, walking the same objects with SNMPv1 returns fewer entries, one fewer for each Counter64 object.

AT+ENGINEID? (engine ID)​

AT+ENGINEID?         → +ENGINEID:"8000CECE030008DC123456"

(Enterprise number | 0x80000000) in 4 bytes + format byte 0x03 + 6-byte MAC. Read-only; it changes if the MAC changes.

SNMPv3 keys are derived together with this value, so if the engine ID changes, every registered user key becomes invalid.

AT+ENGINEBOOT? (engine boot count)​

AT+ENGINEBOOT?       → +ENGINEBOOT:37

A monotonically increasing value used for the SNMPv3 time window.

AT+SYSOBJID (sysObjectID)​

AT+SYSOBJID="1.3.6.1.4.1.12345.1.1"
AT+SYSOBJID="" revert to default
AT+SYSOBJID? → +SYSOBJID:"1.3.6.1.4.1.52942",DEFAULT
→ +SYSOBJID:"1.3.6.1.4.1.12345.1.1",CONFIGURED

This value tells the manager which company's product the device is. The module is a component, so set it to the enterprise OID of the end-product manufacturer. If it is not set, the module answers with its own manufacturer's number.

  • At least 2 arcs are required.
  • This value alone is not subject to the product enterprise subtree check.
  • It is read-only over SNMP.

AT+SYSDESCR · AT+SYSNAME · AT+SYSCONTACT · AT+SYSLOCATION (description, name, contact, location)​

AT+SYSDESCR="Acme UPS-3000 controller"  up to 63 characters
AT+SYSNAME="ups-lab-03" up to 31 characters
AT+SYSCONTACT="ops@example.com" up to 63 characters
AT+SYSLOCATION="Seoul HQ, B2, rack 4" up to 63 characters
AT+SYSCONTACT="" clear
AT+SYSDESCR="" back to the module's own text
AT+SYSDESCR? → +SYSDESCR:"Acme UPS-3000 controller",CONFIGURED
AT+SYSNAME? → +SYSNAME:"ups-lab-03"
AT+SYSCONTACT? → +SYSCONTACT:"ops@example.com"
AT+SYSLOCATION? → +SYSLOCATION:"Seoul HQ, B2, rack 4"
AT+SAVE

The description (sysDescr), name (sysName), contact (sysContact) and location (sysLocation) an SNMP manager shows in its device list. Set them so that each installed device can be told apart.

  • While sysDescr is not set (or after ""), the module answers its own text, EOE-ioNIC_SNMP SNMPv3 module, firmware <version>. DEFAULT or CONFIGURED in the query result says which. With sysDescr set, check the firmware version with AT+VERSION?.

  • AT+SYSNAME is the same value as Hostname on the web interface's Network tab. Changing it does not drop network connections.

  • Only printable ASCII (letters, digits, space and symbols) is allowed, and " is not. Non-ASCII text is ERROR:INVALID_PARAMETER; a value that is too long is ERROR:BUFFER_TOO_LONG. A comma inside the quotes is part of the value.

  • Takes effect at once; send AT+SAVE to keep it across a reboot.

  • sysDescr, sysContact and sysLocation can also be set on the web interface's Identity tab.

  • Read-only over SNMP.

AT+PRODUCTID (product ID override)​

AT+PRODUCTID=0x00010002    set override
AT+PRODUCTID=0 clear override
AT+PRODUCTID?
+PRODUCTID:0x00010002,OVERRIDE
+PRODUCTID:FACTORY,0x454F4501 ← only while overridden

The product ID is used to refuse OTA packages meant for other products. An override disables that check, so every place the value is shown also indicates whether it is overridden.

MarkerMeaning
FACTORYValue from the factory record
OVERRIDEValue set by this command
PLACEHOLDERValue never assigned

0 clears the override; it is not a value.

AT+PRODUCTARC (product arc for automatic OID placement)​

AT+PRODUCTARC=7      → new objects at <enterprise>.7.<id>.0
AT+PRODUCTARC=0 → new objects at <enterprise>.<id>.0
AT+PRODUCTARC? → +PRODUCTARC:7,SET / +PRODUCTARC:0,NONE

Where objects are placed when AT+OBJADD omits the OID. It applies only to objects created from now on; existing objects do not move.


6. SNMPv3 users and communities​

Up to 4 SNMPv3 users and up to 4 v1/v2c communities. The two tables are separate: deleting from one does not free a slot in the other.

AT+USMADD (add or change an SNMPv3 user)​

AT+USMADD="<name>",<level>[,<auth>,"<auth-pw>"[,<priv>,"<priv-pw>"]][,<role>]
ArgumentValues
levelNOAUTHNOPRIV · AUTHNOPRIV · AUTHPRIV
authSHA256 · SHA1 (= SHA)
privAES128 (= AES)
roleADMINISTRATOR · OPERATOR · MONITOR · NOTIFICATION (default OPERATOR)
AT+USMADD="admin",AUTHPRIV,SHA256,"auth-password",AES128,"priv-password"
AT+USMADD="mon",NOAUTHNOPRIV,,,,,MONITOR
AT+SAVE
roleAccess
ADMINISTRATORRead and write all objects
OPERATORRead and write regular objects
MONITORRead only
NOTIFICATIONFor receiving Traps / Informs
  • role is always the 7th position. Keep the commas even for a level that needs no keys.
  • MD5 and DES are not supported. They are refused with ERROR:NOT_SUPPORTED rather than replaced with a weaker algorithm.
  • An invalid role is refused, not replaced with the default.
  • The name is up to 32 bytes and each password up to 63 bytes. Longer values return ERROR:INVALID_PARAMETER.
  • The same name overwrites the existing user. With no free slot, the result is ERROR:USER_LIMIT.
  • Registration takes a few seconds. Wait for OK.

Passwords are not stored. They are converted at once into keys localized to the engine ID, and every plaintext copy is wiped. A lost password cannot be recovered; delete the user and create it again.

AT+USMDEL (delete a user)​

AT+USMDEL="admin"
AT+SAVE

An unknown name returns ERROR:OBJECT_NOT_FOUND.

AT+USMUSER? (list users)​

AT+USMUSER?
+USMUSER:"admin",AUTHPRIV,SHA256,AES128,CONFIGURED,ENABLED,Administrator

Name · level · authentication algorithm · privacy algorithm · keys configured · enabled · role.

The role is printed as Administrator · Operator · Monitor · Notification, not in the upper case used on input. Input is not case-sensitive, so the printed value can be entered again as it is. AT+COMM? does the same.

Neither passwords nor keys are returned, not even the key length.

AT+COMMADD (add or change a community)​

AT+COMMADD="<name>",<role>[,<enabled>]
ArgumentValuesDefault
roleADMINISTRATOR · OPERATOR · MONITOR · NOTIFICATIONNone (required)
enabled0 · 11
AT+SNMPVER=2,3
AT+COMMADD="ro-poll",MONITOR
AT+SAVE
  • role is required and has no default. An invalid value returns ERROR:INVALID_PARAMETER.
  • Access checks are the same as for USM users. A community cannot reach more than a v3 user with the same role.
  • For an existing name, only the given fields change. If enabled is omitted, the existing value is kept. To disable explicitly, use AT+COMMADD="ro-poll",MONITOR,0.
  • The name is up to 32 bytes.
  • With no free slot, the result is ERROR:COMMUNITY_LIMIT.

AT+COMMDEL (delete a community)​

AT+COMMDEL="ro-poll"
AT+SAVE

A community can be deleted even if a Trap receiver still uses it. Sending to that receiver then fails with UNKNOWN_COMMUNITY.

AT+COMM? (list communities)​

AT+COMM?
+COMM:"ro-poll",Monitor,ENABLED

Name · role · enabled. Community strings are returned as they are, because SNMP already carries them in plaintext.


7. Objects and OID mapping​

Up to 1024 objects, of which up to 128 can be OctetString.

AT+OBJADD (define an object)​

AT+OBJADD=<id>,"<name>",<type>,<access>[,<persistence>[,"<oid>"]]
ArgumentValues
id1 … 65535. The number the host uses to refer to this object
nameUp to 19 bytes. Longer returns ERROR:INVALID_PARAMETER
typeInteger32 Unsigned32 Gauge32 Counter32 Counter64 TimeTicks OctetString IpAddress
accessRO · RW
persistenceVOLATILE (default) · PERSISTENT
oidPlaced automatically if omitted. Up to 16 arcs and 20 encoded bytes
AT+OBJADD=1,"temperature",Integer32,RO,VOLATILE
AT+OBJADD=3,"relay1",Integer32,RW,PERSISTENT
AT+OBJADD=9,"custom",Gauge32,RO,VOLATILE,"1.3.6.1.4.1.52942.9.0"
AT+SAVE
  • If the OID is omitted, the object is placed at <enterprise>[.<product arc>].<id>.0.
  • An explicit OID is checked against the enterprise subtree. Outside it, the result is ERROR:OID_OUT_OF_SUBTREE.
  • The value of a PERSISTENT object survives a reboot; a VOLATILE one does not.
  • The mapping source changes to MANUAL_AT (AT+OIDMAP?).
  • Without AT+SAVE, the definition is gone at the next boot.

**ERROR:OID_TOO_LONG is returned both for more than 16 arcs and for an OID whose BER encoding exceeds 20 B even with 16 arcs or fewer. A large number such as 52942 takes 3 B for one arc, a small one takes 1 B. 1.3.6.1.4.1.52942.a.b.c.0 is 12 B, well within the limit.

ErrorCause
DUPLICATE_ID · DUPLICATE_NAME · DUPLICATE_OIDTells you whether the number, name or OID collided
TYPE_MISMATCHUnknown type
INVALID_PARAMETERInvalid access or persistence value
OBJECT_LIMITNo free object or string slot

AT+OBJATTR (object attributes)​

AT+OBJATTR=<id>,SETMODE,IMMEDIATE|CONFIRMED
AT+OBJATTR=<id>,RANGE,<min>,<max> 0,0 = no range
AT+OBJATTR=<id>,UNIT,"<unit>" up to 7 bytes
AT+OBJATTR=<id>,DESC,"<description>" up to 31 bytes
AT+OBJATTR=<id>,DEFAULT,<value> integer types only, 0 = none
AT+OBJATTR?
+OBJATTR:10,CONFIRMED,0,1,"","Relay; host must agree first",0
+OBJATTR:2,IMMEDIATE,0,85,"degC","Board temperature",25

Adds or changes, on an object created with AT+OBJADD, the attributes a web CSV row carries. One attribute per command; the object is not deleted, so its value (PERSISTENT included) is kept.

AT+OBJADD=10,"relay",Integer32,RW,PERSISTENT
AT+OBJATTR=10,SETMODE,CONFIRMED
AT+OBJATTR=10,RANGE,0,1
AT+OBJATTR=10,DESC,"Relay; host must agree first"
AT+SAVE
AttributeMeaning
SETMODEWith CONFIRMED, a manager's SET is not applied at once: the module asks the host with +SNMPSET:<tid>,<id>,<value>, and it is applied only when AT+SETACK approves it within 750 ms
RANGEThe value range for integer types, the length range (0 to 64) for OctetString. AT+OBJVAL and SNMP SETs outside it are refused
UNIT · DESCUnit and description. "" clears them
DEFAULTThe starting value when the object is created or the device boots. The current value is not changed. A PERSISTENT object's stored value takes precedence
  • A range that the current value falls outside is refused. Change the value first, then narrow the range.
  • IpAddress and Counter64 take no range; OctetString and IpAddress take no default.
  • The mapping source becomes MANUAL_AT. Without AT+SAVE the change is gone at the next boot. The attributes also appear in the web CSV export.
ErrorCause
OBJECT_NOT_FOUNDNo object with that id
VALUE_OUT_OF_RANGEA range or default does not fit the type, or the current value or the default is outside the range
TYPE_MISMATCHThat attribute cannot be given to this type
BUFFER_TOO_LONGThe unit or description is too long
INVALID_PARAMETERWrong attribute name or value format, or min is greater than max

AT+OBJDEL (delete an object)​

AT+OBJDEL=1
AT+SAVE

AT+OBJVAL (write and read values)​

AT+OBJVAL=1,253
AT+OBJVAL=5,"Busan-Lab-B"
AT+OBJVAL=7,"192.168.0.9"

AT+OBJVAL?
+OBJVAL:1,"temperature",1.3.6.1.4.1.52942.1.0,253
  • No AT+SAVE needed. The value takes effect immediately.
  • The value is interpreted according to the type. Counter64 accepts the full 64 bits.
  • An out-of-range value returns ERROR:VALUE_OUT_OF_RANGE.
  • String values are up to 63 bytes; longer returns ERROR:INVALID_PARAMETER. The same object accepts up to 64 bytes through an SNMP SET.
  • Strings in a PERSISTENT object are limited to 44 bytes, because a longer value does not fit the storage record. Longer values are refused with ERROR:BUFFER_TOO_LONG and the value is left unchanged.
  • The query returns the whole list. AT+OBJVAL?<id> is not supported.
  • Object definitions are not touched, so the mapping source does not change.

AT+OBJ? (query object definitions)​

AT+OBJ?
+OBJ:1,"temperature",1.3.6.1.4.1.52942.1.0,Integer32,RW,PERSISTENT,IMMEDIATE,"C"

id · name · OID · type · access · persistence · SET mode · unit.

FieldValues
AccessRO · RW
PersistencePERSISTENT · VOLATILE
SET modeIMMEDIATE · CONFIRMED (set only through CSV)

AT+OBJVAL? answers with values; this command answers with definitions.

AT+SETACK (answer a confirmed SET)​

+SNMPSET:27,3,1          ← confirmation request from the module (request no., object no., value)
AT+SETACK=27,OK → approve
AT+SETACK=27,FAIL → reject
  • Answer within 750 ms. If the deadline passes, the manager receives an error and a late answer returns ERROR:HOST_TIMEOUT.
  • Anything other than OK is treated as a rejection, but the answer must be 7 bytes or shorter. A longer one such as ERROR:BUSY is itself refused with ERROR:INVALID_PARAMETER, and the SET fails after the 750 ms deadline. Send FAIL to reject.

AT+OIDMAP? (mapping status)​

AT+OIDMAP?
+OIDMAP:CSV_IMPORT,64,3,32768,0xA1B2C3D4,ACTIVE

Source · object count · CSV schema version · original size · original CRC32 · active state.

SourceMeaning
DEFAULTNo user mapping
MANUAL_ATDefined with AT commands
CSV_IMPORTImported from a CSV via the web interface
CSV_IMPORT_MODIFIEDImported from a CSV, then changed with AT

The original CSV content is not returned over AT.

AT+OIDMAPRELOAD · AT+OIDMAPCLEAR​

AT+OIDMAPRELOAD              re-parse and apply the stored CSV
AT+OIDMAPCLEAR="CONFIRM" clear the user mapping
  • With no stored CSV the result is ERROR:CSV_NOT_AVAILABLE; with a corrupt one, ERROR:INVALID_CSV. A CSV with a header line and no object rows is also INVALID_CSV. To empty the mapping, use AT+OIDMAPCLEAR="CONFIRM".
  • CSV upload is available only through the web interface.

8. Notifications (Trap · Inform)​

Up to 4 receivers, index 0 … 3.

TrapInform
AcknowledgementNot checkedWaits for a response
On failureEnds as isRetried, then ERROR:NOTIFY_NO_RESPONSE

AT+TARGETADD (register a receiver)​

AT+TARGETADD=<idx>,"<ip>",<port>,"<user>",<level>
[,<type>[,<retry>[,<timeout>[,<version>[,"<community>"]]]]]
ArgumentValuesDefault
typeTRAP · INFORMTRAP
retry0 … 2553
timeout1 … 65535 (ms)1000
versionV1 · V2C · V3V3
communityRequired for v1/v2c, not allowed for v3—
AT+TARGETADD=1,"192.168.0.20",162,"trapuser",AUTHPRIV
AT+TARGETADD=2,"192.168.0.21",162,"informuser",AUTHNOPRIV,INFORM,5,2000
AT+TARGETADD=3,"192.168.0.22",162,"",,TRAP,3,1000,V2C,"ro-poll"
AT+SAVE
  • v1/v2c receivers have no user and no security level. Leave those two positions empty.
  • Out-of-range retry or timeout values are refused, not clamped.
  • Registering again at the same index erases the receiver keys stored there.
  • Whether the community exists is checked when sending, not when registering.
  • The user name and the community name are each up to 32 bytes.
  • INFORM for a V1 receiver returns ERROR:NOT_SUPPORTED. SNMPv1 has no Inform at all, and a Trap is not sent in its place.

AT+TARGETDEL · AT+TARGET?​

AT+TARGETDEL=1

AT+TARGET?
+TARGET:1,"192.168.0.20",162,"trapuser",TRAP,KEYED,AUTHPRIV,3,1000,V3,""
+TARGET:3,"192.168.0.22",162,"",TRAP,NOKEY,NOAUTHNOPRIV,3,1000,V2C,"ro-poll"

Index · address · port · user · type · keys registered · security level · retry · timeout · version · community. The keys themselves are not returned.

AT+TARGETKEY (register a receiver's localized keys)​

AT+TARGETKEY=<idx>,"<engine-id-hex>","<auth-key-hex>"[,"<priv-key-hex>"]
AT+TARGETKEY=1,"","","" clear

Needed only for authenticated v3 Informs. Keys localized to the receiver's engine ID are required, and since this device does not hold passwords, the keys are computed outside and entered here (inform_keys.md).

  • Sending an authenticated Inform without keys returns ERROR:ACCESS_DENIED.
  • Not needed for Traps or v2c Informs.

AT+TRAPSEND · AT+INFORMSEND​

AT+TRAPSEND=<trap-id>[,<object-id>]
AT+INFORMSEND=<trap-id>[,<object-id>]
AT+TRAPSEND=1001,2
AT+INFORMSEND=1001,2

Sent to every registered receiver. The command decides whether it is a Trap or an Inform; the type stored for a receiver changes only through the 6th argument of AT+TARGETADD.

ErrorCause
NOTIFY_NO_RESPONSEThe Inform got no response through all retries
UNKNOWN_COMMUNITYThe receiver's community is missing or disabled
UNKNOWN_USERThe USM user a v3 receiver names does not exist
ACCESS_DENIEDAuthenticated Inform without keys

A v2c Inform response is accepted only if the request-id, the community and the source address all match.


9. TCP · UDP socket channels​

Logical channels 0 … 3, with a maximum payload of 1460 bytes per send. The channel number is the host's own number and has nothing to do with the socket numbers inside the Ethernet chip.

AT+SOCKAVAIL? · AT+SOCKSTATUS?​

AT+SOCKAVAIL?
+SOCKAVAIL:2

AT+SOCKSTATUS?
+SOCKSTATUS:0,TCP_CLIENT,ESTABLISHED,"192.168.0.20",5000,40001
+SOCKSTATUS:1,TCP_SERVER,LISTENING,"0.0.0.0",0,5001
+SOCKSTATUS:2,UDP,OPEN,"0.0.0.0",0,6000

States: CLOSED OPENING LISTENING CONNECTING ESTABLISHED CLOSING OPEN ERROR.

A UDP channel is OPEN, not ESTABLISHED. It sends and receives normally in that state.

AT+SOCKOPEN (open a channel)​

AT+SOCKOPEN=0,TCP_CLIENT,"192.168.0.20",5000
AT+SOCKOPEN=0,TCP_CLIENT,"server.example.com",5000
AT+SOCKOPEN=0,TCP_CLIENT,"192.168.0.20",5000,40001 with local port
AT+SOCKOPEN=1,TCP_SERVER,5001
AT+SOCKOPEN=2,UDP,6000
  • With no free resources the result is ERROR:NO_SOCKET. Existing channels are never closed to make room.
  • Every connection failure returns ERROR:CONNECT_FAILED; the reason comes in the +SOCKERROR line sent just before it.
  • Ports are 1 … 65535. The local port may be omitted.
  • A TCP server accepts one client per channel.
  • The host name is up to 63 bytes.

AT+SOCKCLOSE · AT+SOCKPEER​

AT+SOCKCLOSE=0
AT+SOCKPEER=2,"192.168.0.30",7000 default UDP peer

AT+SOCKSEND · AT+SOCKSENDTO​

AT+SOCKSEND=<ch>,<len>
AT+SOCKSENDTO=<ch>,"<host>",<port>,<len>
AT+SOCKSEND=0,5
> HELLO
+SOCKSEND:0,5
OK

For the binary mode rules, see 1.5.

  • The second number in the response is the number of bytes actually sent. It can be smaller than requested.
  • A len of 0 returns INVALID_PARAMETER; over 1460 returns BUFFER_TOO_LONG.
  • On a channel that cannot send, ERROR:NOT_CONNECTED is returned before the prompt.
  • AT+SOCKSENDTO works on a UDP channel only, and the port (1 … 65535) and address (not 0.0.0.0) are also checked before the prompt.
  • Received data arrives as +SOCKRX · +SOCKRXFROM URCs (Chapter 12).

AT+SOCKOPT (socket options)​

AT+SOCKOPT=<ch>,<option>,<value>
AT+SOCKOPT?
OptionApplies toValue
KEEPALIVETCP0 / 1
KEEPIDLETCPseconds, 0 … 65535 (outside: VALUE_OUT_OF_RANGE)
NODELAYTCP0 / 1
BROADCASTUDP0 / 1

A TCP option on a UDP channel, or the reverse, returns ERROR:NOT_SUPPORTED.


10. Web management​

The web interface is disabled by default, and it can be turned on only over AT. Its address is http://<IP>:50003/ (the port cannot be changed).

From the factory there is no web password, so no one can log in. Set one with AT+WEBPASS before turning the web on. The account name defaults to admin.

AT+WEB · AT+WEBUSER · AT+WEBPASS · AT+WEBTIMEOUT​

AT+WEB=1                 enable the web interface
AT+WEB=0 disable
AT+WEB=1,600 enable + session timeout of 600 s (1 … 65535)
AT+WEB? → +WEB:1,600,SET

AT+WEBUSER="admin"
AT+WEBUSER? → +WEBUSER:"admin"

AT+WEBPASS="new-password" 8 … 63 bytes
AT+WEBTIMEOUT=600 1 … 65535 s
AT+WEBTIMEOUT? → +WEBTIMEOUT:600
AT+SAVE

Third field of AT+WEB?:

ValueMeaning
MUSTCHANGENo password yet. Nobody can log in until one is set with AT+WEBPASS
SETA password is set
  • There is no AT+WEBPASS?. The password is stored only in a form that cannot be reversed, so there is nothing to answer with.
  • The account is up to 23 bytes and the password up to 63 bytes.
  • One connection is served at a time. When requests come back to back, the later connection can be refused for a moment, so a script should retry once.

11. Firmware update (OTA)​

There are two ways: upload through the web interface, or AT+OTAFWUP. Neither installs immediately. The received image is verified, stored in a staging area and installed at the next boot. If the transfer fails or is interrupted, the running firmware stays in place.

AT+OTAFWUP (send firmware over UART)​

AT+OTAFWUP=<seconds>     idle timeout, 1 … 600

Sequence​

AT+OTAFWUP=30
+OTAFWUP:READY ← staging area ready. Send the whole file now
<the entire .fwpkg file>
+OTAFWUP:IMAGE,1.2.0,218980 ← header accepted. Version and image size
+OTAFWUP:DONE,218980,1.2.0
OK
  • There is no step at which to pause. After +OTAFWUP:READY, send the whole file in one go.
  • +OTAFWUP:IMAGE is a progress notice, not a prompt.
  • Wait for READY. Right after the command the module erases the staging area for about 0.5 s, during which reception stops and anything sent is lost.
  • No progress is reported during the transfer. Check how much arrived with AT+OTASTATUS?.

Tera Term​

  1. Type AT+OTAFWUP=30
  2. Wait for +OTAFWUP:READY (about 0.5 s)
  3. File → Send file → tick Binary → select the .fwpkg
  4. Check for +OTAFWUP:DONE and OK, then AT+OTAREBOOT

Flow control is not required. At the factory default (115200 8N1, no flow control) a package of about 214,000 bytes goes through in 19 seconds without loss. When raising the speed, RTSCTS is recommended.

When it looks stuck​

+OTAFWUP:IMAGE,1.2.0,218980
(...no response...)

The module is waiting for the rest of the package. In this state every byte you type goes in as firmware data and restarts the idle timer from zero.

**Take your hands off and wait <seconds>; the module returns to command mode on its own.

+OTAFWUP:ERROR,TIMEOUT,183253,218980,OVERRUN
ERROR:PAYLOAD_TIMEOUT

This means only 183,253 of 215,164 bytes arrived.

MarkerMeaningAction
OVERRUN presentThe host sent everything but the module did not receive it allEnable flow control or lower the speed
OVERRUN absentThe host stopped partwayCheck the file and the transfer tool

Refusals and failures​

+OTAFWUP:ERROR,PRODUCT,0xFFFF0001,0x454F4501
ERROR:INVALID_IMAGE

The first value is the package's product ID, the second the module's. The module value is the fourth field of AT+VERSION?.

URCResponseMeaning
+OTAFWUP:ERROR,MAGICINVALID_IMAGENot a firmware package
+OTAFWUP:ERROR,HEADERCRCINVALID_IMAGEThe header is corrupt
+OTAFWUP:ERROR,PRODUCT,<package>,<module>INVALID_IMAGEBuilt for another product. A trailing ,OVERRIDDEN means the module value is an override
+OTAFWUP:ERROR,HWREV,<min>,<max>,<module>INVALID_IMAGEHardware revision out of range
+OTAFWUP:ERROR,SIZEINVALID_IMAGEImage size out of range
+OTAFWUP:ERROR,HEADERINVALID_IMAGEA header value does not match this device
+OTAFWUP:ERROR,UNSUPPORTEDINVALID_IMAGEHeader version or required bootloader version is too high
+OTAFWUP:ERROR,IMAGECRCINVALID_IMAGEContent check failed. Detected after everything is received
+OTAFWUP:ERROR,NOTAPPINVALID_IMAGEThe package is intact but is not firmware the module can start. Detected after everything is received
+OTAFWUP:ERROR,BUSYSTORAGE_BUSYStorage is in use by something else
+OTAFWUP:ERROR,STORAGESTORAGE_FAILUREFlash write failed
+OTAFWUP:ERROR,TIMEOUT,<received>,<total>PAYLOAD_TIMEOUTThe host stopped partway
+OTAFWUP:ERROR,TIMEOUT,<received>,<total>,OVERRUNPAYLOAD_TIMEOUTThe module missed some bytes
+OTAFWUP:ERROR,PORT,"<reason>"NOT_SUPPORTEDThe port cannot carry 8 bits
  • However it ends, the port returns to AT command mode.
  • After a refusal, leftover bytes may be read as command lines and a few ERROR:INVALID_COMMAND lines may follow. One empty line (CR) clears them.
  • The staging area is erased before the header is checked. Even for a refused file, whatever was there before has already been erased.

Port requirements​

The transfer does not start at 7 bits or with XONXOFF. Change to 8 bits with NONE, RTSCTS or DTRDSR using AT+UART and try again.

DTRDSR can be used. However, if the host keeps DTR low, +OTAFWUP:READY does not appear and the module waits. The idle timeout counts reception, so it does not end this wait. Raising DTR lets the transfer continue.

AT+OTASTATUS? (progress status)​

AT+OTASTATUS?
+OTASTATUS:DOWNLOADING,131072,262144,50

State · bytes received · total size · progress (%). States: IDLE HEADER ERASING DOWNLOADING VERIFYING READY FAILED.

AT+OTACANCEL · AT+OTAREBOOT​

AT+OTACANCEL         cancel the update in progress
AT+OTAREBOOT reboot into the staged image
  • With nothing staged, both return ERROR:OTA_NOT_STAGED.
  • AT+OTACANCEL also works after the transfer has finished and the state is READY.
  • AT+OTAREBOOT closes connections in the same order as AT+REBOOT.
  • An image uploaded through the web interface is installed by a reboot the module makes by itself 5 seconds later. An AT+OTACANCEL in that time discards the image and the reboot does not happen.

12. URCs (unsolicited messages)​

These arrive at any time without a request from the host. They share the transmit path with command responses, so they can appear before or after an OK.

URCCategoryMeaning
+READY:"1.2.0"DeviceBoot complete. Bytes sent on the AT port before this line are discarded
+LINK:UP / +LINK:DOWNNetworkEthernet link changed
+IPCHANGED:"<ip>","<mask>","<gw>"NetworkAddresses applied again (see below)
+SNMPSET:<obj>,<value>ObjectAn immediate SET was applied
+SNMPSET:<tid>,<obj>,<value>ObjectConfirmed SET. Answer with AT+SETACK
+NOTIFYFAIL:<idx>,<reason>NotificationA notification could not be sent
+SOCKCONNECTED:<ch>,"<ip>",<port>SocketTCP client connected
+SOCKACCEPTED:<ch>,"<ip>",<port>SocketTCP server accepted a client
+SOCKRX:<ch>,<len>SocketData received. Raw bytes follow
+SOCKRXFROM:<ch>,"<ip>",<port>,<len>SocketUDP data received. Raw bytes follow
+SOCKDISCONNECTED:<ch>,<reason>SocketChannel closed
+SOCKERROR:<ch>,<reason>SocketSocket error
+FACTORY:COMPLETEDeviceFactory reset complete
URCReason values
+SOCKDISCONNECTEDREMOTE_CLOSE ERROR NETWORK_RECONFIGURED ADDRESS_CHANGED MODULE_RESET
+SOCKERRORCONNECTION_TIMEOUT CONNECTION_RESET CONNECTION_REFUSED CONNECTION_ABORTED CONNECTION_CLOSED INVALID_DESCRIPTOR UNREACHABLE NO_RESOURCE UNKNOWN
+NOTIFYFAILNO_RESPONSE NO_KEYS UNKNOWN_USER UNKNOWN_COMMUNITY AGENT_DOWN FAILED

UNKNOWN_USER means a v3 receiver names a USM user that does not exist (AT+USMUSER?); UNKNOWN_COMMUNITY means a v1/v2c receiver names a community that is missing or disabled (AT+COMM?). They are fixed in different places.

When the Ethernet cable is pulled. +LINK:DOWN is sent, but open socket channels are not closed. When the cable is plugged back in, a TCP connection simply carries on. If data sent while the cable was out is not acknowledged within the retransmission limit, that channel ends with +SOCKERROR.

A 0x00 after a reset. When the module resets, one 0x00 byte can arrive in front of the first line after the reset. That line is +READY with DHCP and +IPCHANGED with a static address. Depending on the host UART it shows as a framing error or a break. The module's TX pin (GP4) goes low for a moment during the reset. Look for URCs within the line rather than comparing from its first byte, and ignore a 0x00 in front of it. An external pull-up on GP4 (for example 10 kΩ) is recommended in the hardware design.

+IPCHANGED is sent every time the module applies its addresses, and the three values are the IP address, subnet mask and gateway now in use.

  • At boot. Before +READY with a static address; with DHCP, once the address is obtained (after +READY)
  • After an address setting is changed and AT+SAVE is sent. Nothing is sent if nothing changed
  • When DHCP gives a new address. A renewal with the same address sends nothing

Applying the addresses again closes every open socket channel (+SOCKDISCONNECTED comes first). An SNMP manager has to use the new address as well.

A channel that is already closed does not get a second notification.


13. Error codes​

ERROR:<code>
CodeMeaning
INVALID_COMMANDUnknown command, does not start with AT, or that form is not supported
INVALID_PARAMETERArgument format, count or range is wrong
BUFFER_TOO_LONGA line over 256 B, a payload over 1460 B, or a value too long to store
OBJECT_NOT_FOUNDNo such object, user, receiver or request number
TYPE_MISMATCHUnknown object type
ACCESS_DENIEDRefused for security (e.g. an authenticated Inform sent without keys)
VALUE_OUT_OF_RANGEThe value is outside the range of its type
HOST_TIMEOUTThe confirmed SET deadline (750 ms) passed
NO_SOCKETNot enough socket resources
INVALID_CHANNELChannel number outside 0 … 3
ALREADY_OPENThe channel is already open
NOT_CONNECTEDThe channel is not in a state that can send
CONNECT_FAILEDThe connection failed (reason in +SOCKERROR)
PAYLOAD_TIMEOUTThe binary payload did not arrive in full within 10 seconds
SOCKET_OVERFLOWThe receive queue overflowed
STORAGE_BUSYStorage is in use by another operation
OTA_PENDINGRefused because firmware is waiting to be installed
OTA_NOT_STAGEDNo firmware is waiting to be installed
INVALID_CSVThe CSV could not be parsed
INVALID_IMAGEThe firmware package failed verification (reason in +OTAFWUP:ERROR)
MAPPING_TOO_LARGEThe mapping exceeds capacity
CSV_NOT_AVAILABLENo CSV is stored
STORAGE_FAILURECould not write to flash
USER_LIMITNo free SNMPv3 user slot (4 users)
COMMUNITY_LIMITNo free community slot (4). Separate from the user table
UNKNOWN_COMMUNITYThe receiver's community is missing or disabled
UNKNOWN_USERThe USM user a v3 receiver names does not exist
NOTIFY_NO_RESPONSEThe Inform got no response through all retries
OID_OUT_OF_SUBTREEThe OID is outside the product enterprise range
OID_TOO_LONGThe OID is too long: more than 16 arcs, or more than 20 bytes encoded
DUPLICATE_ID · DUPLICATE_NAME · DUPLICATE_OIDThat number, name or OID is already in use
OBJECT_LIMITNo free object or string slot
NOT_SUPPORTEDUnsupported algorithm or option
INTERNALInternal error

14. Alphabetical index​

CommandCh.CommandCh.
AT3AT+SNMP5
AT+COMM6AT+SNMPPORT5
AT+COMMADD6AT+SNMPVER5
AT+COMMDEL6AT+SOCKAVAIL9
AT+DIAG3AT+SOCKCLOSE9
AT+DNS4AT+SOCKOPEN9
AT+ENGINEBOOT5AT+SOCKOPT9
AT+ENGINEID5AT+SOCKPEER9
AT+FACTORY3AT+SOCKSEND9
AT+GW4AT+SOCKSENDTO9
AT+INFORMSEND8AT+SOCKSTATUS9
AT+IP4AT+SYSCONTACT5
AT+MASK4AT+SYSDESCR5
AT+NETMODE4AT+SYSLOCATION5
AT+OBJ7AT+SYSNAME5
AT+OBJADD7AT+SYSOBJID5
AT+OBJATTR7AT+TARGET8
AT+OBJDEL7AT+TARGETADD8
AT+OBJVAL7AT+TARGETDEL8
AT+OIDMAP7AT+TARGETKEY8
AT+OIDMAPCLEAR7AT+TRAPSEND8
AT+OIDMAPRELOAD7AT+UART3
AT+OTACANCEL11AT+USMADD6
AT+OTAFWUP11AT+USMDEL6
AT+OTAREBOOT11AT+USMUSER6
AT+OTASTATUS11AT+VERSION3
AT+PRODUCTARC5AT+WEB10
AT+PRODUCTID5AT+WEBPASS10
AT+REBOOT3AT+WEBTIMEOUT10
AT+SAVE3AT+WEBUSER10
AT+SETACK7