Alpha Module
1. Hardware API interface
- UART, 11500 Baud (Customizable), 8 digits, no parity check, one stop digit
- Sleep/awake GPIO
2. Sleep/Awake
- In order to further decrease the power consumption of the module, the port is closed during sleep mode, and the module won't be able to response to AT directives
- Rising edge generated at
sleep/awake GPIO
pin to awake the module and falling edge generated to switch the module into sleep mode
3. Directive AT Format
All directive, modulesReturn value, Execution result displayed in unit of rows, and each row ends with <CR><CF>
.
Directive<CR><CF>
Returned value<CR><CF>
Execution Result<CR><CF>
4. Directive List
Function | Directive |
---|---|
AT | System - Whether testing module is for the public |
AT+V? | System - Version checking |
AT+DEU? | System - SN module checking |
AT+SEND= | Transmission - Transmitting data |
AT+DQ? | Transmission - Checking if there's data awaiting to be received |
AT+RCV= | Transmission - Data receiving |
AT+BPI= | BLE - BLE broadcast frequency settings |
AT+BPI? | BLE - BLE broadcast frequency checking |
AT+BD= | BLE - BLE broadcast data settings |
5. Error Codes
Error codes | Description |
---|---|
0 | Invalid directive |
1 | Invalid parameter |
2 | Transmission busy |
3 | Server side timeout |
4 | Non cached module data |
6. Directive Document
1) System directive
Provide module testing, firmware version check, and SN check, etc.
AT | Check if module is in normal operationg condition |
---|---|
AT | Execution result:<OK> :Success<ERROR:0> :Invalid directiveExample: AT OK |
+V | Checking module firmware version |
---|---|
AT+V? | Result:+V:Version Execution result: <OK> :Success<ERROR:0> :Invalid directiveExample: AT+V? +V:1.0 OK |
+DEU | Checking SN module |
---|---|
AT+DEU=<EUI64> |
Modify device EUI Parameters: <EUI64> hexString Execution result: <OK> :Success<ERROR:0> :Invalid directive<ERROR:1> :Invalid parameterexample: AT+DEU=0011223344556677 OK |
AT+DEU? | Check device EUI Result: +DEU:<EUI64> hexString Execution result: <OK> :success<ERROR:0> :Invalid directiveExample: AT+DEU? +DEU:0011223344556677 OK |
2) Transmission directive
Data transmission, checking unread data, read data
+SEND | Sending data |
---|---|
AT+SEND=<Length>,<ACK>[,<ID>] |
Send data, module prompt return >>> shown,server can sent 16-digitsdata to module, if server failed to return data within 5 seconds, return timeout error Parameters: <Length> :require to send 16-digitsdatalength, maximum length: 37<ACK> :is require network ACK response1 :Yes0 :No<ID> :the id is for downstream data, client can choose to send data back to the cloud.Execution result: <OK> :Success |
<ERROR:0>
:Invalid directive<ERROR:1>
:Invalid parameter<ERROR:2>
:Transmission busy<ERROR:3>
:Server side timeout
Return result:+SEND:<Result>
<Result>
:Sent result0
:Sent fail1
:Sent complete2
:Sent and received by ACK3
:Sent without received by ACK
Note:when ack
set as 1,if no response from the network, the module will resend data 8-times and return transmission result without response by ACK;when ACK
is 0,it will return transmission success, but unconfirm module data was received.
Example:AT+SEND=12,1
>>>
xxxxxx
//Server side sent the 16-digit data to moduleOK
Sometime...+SEND:2
OK
|
+DQ | Checking unread data |
---|---|
AT+DQ? | Checking for non-receive data Result: +DQ:<Length> <Length> :Data receive length.Execution result: <OK> :Success<ERROR:0> :Invalid directiveExample: AT+DQ? +DQ:20 OK |
+RCV | Reading data |
---|---|
AT+RCV=1 | Receiving data Result: <Length><ID><Data><Length><ID><Data>... <Length> :Data length, 1 byte,is equal to ID length + Data length<ID> :ID data length,4byte, long length format, all 0 represent no ID<Data> :16-digits data flowNote:this directive will have multiple return <Length><ID><Data> ,Total length equals to AT+DQ? Data queryDirective result: <OK> :Success<ERROR:0> :Invalid directive<ERROR:4> :Non-cache dataExample: AT+RCV=1 0A0B0C0000112233445566080C0C000012345678(16-digits) OK Steps: 1. Analyze 0 character,obtain the length of 0x0A, which is 10,packet result of 10 characters in the data,with 4 characters in id,6 characters in data 2. Parsing No.1 to 4 character of 0B0C0000, long length format, obtain id 3083 3. Obtain 6 characters data of 112233445566 4. Analysis found the total length is less than AT+DQ? ,means further un-decrypt data packet.5. Repeat steps 1,2,3,4. |
3) BLE directive
Configure content of BLE broadcast packet , transmit power and transmit interval.
+BPI | Transmit power and Transmit interval settings |
---|---|
AT+BPI=<power>,<interval> |
BLE setting in transmit power and transmit interval Parameters: <power> :Transmit power selection [-52,-42,-38,-34,-30,-20,-16,-12,-8,-4,0,4]dbm<interval> :Transmit interval selection [100 ~ 5000]msResult: <OK> :Success<ERROR:0> :Invalid directive<ERROR:1> :Invalid parameterExample: AT+BPI=-8,400 OK Caution: Higher transmission power is larger power consumption with larger coverage; Smaller interval is larger power consumption makes cell phone easier for signal scanning; |
AT+BPI? | Checking BLE transmit interval Result: +BPI:<power>,<interval> Result: <OK> :Success<ERROR:0> :Invalid directiveExample: AT+BPI? +BPI:-8,400 OK |
+BD | Setting up broadcast data |
---|---|
AT+BD=<length> |
Setting up broadcast data with module returns prompt >>>Server side can send 16-digits data to module,if server side fail to send data within 5 second,it returns timeout error Parameters: <length> <length> :Data length,maximum of 38, if 0,turn off broadcastResult: <OK> :Success<ERROR:0> :Invalid directive<ERROR:1> :Invalid parameter<ERROR:3> :Waiting server side data timeoutExample 1: AT+BD=5 >>> xxxxx (assuming 0x11,0x22,0x33,0x44,0x55) OK BLE broddcast: {<Fixed header>, 0x11,0x22,0x33,0x44,0x55 } Example 2: AT+BD=0 OK |
Transmit power and interval
- Power:[-52,-42,-38,-34,-30,-20,-16,-12,-8,-4,0,4] dBm
- Interval:[100~5000] ms
Broadcast packet
{
0x02,0x01,0x06
0x03,0x03,0xXX,0xXX,
0xXX,0x16,0xXX,0xXX, //Fixed header
0x08, //Fixed mark,meaning customize data
0xXX,0xXX....0xXX //User data setting
}