I have a RAK7431 “LoRaWAN end device” connected to the RAK7243C “LoRaWAN gateway”. RAK7431 supports “GSM modem/phone” AT commands listed here.
When I connect to the RAK7431 using the “RAK serial port tool” (here) and execute the simplest AT command i.e. at+version
, RAK7431 responds by answering
1.1.0060_Release
OK
Here is how it looks:
I want to execute the same AT command remotely using the Chirpstack and get the same answer. Therefore navigate to the Applications, select the application from the applications list and select the device from the devices list.
Then I navigate to the section “Enqueue downlink payload” where I set:
Note that:
-
“fPort” field is set to
130
.Value
130
according to official documentation (source) defines “RS485/232 downlink data sent remotely in transparent RS485 transmission mode”.My RAK7431 operates in “transparent” RS485 mode which I can check using “RAK serial port tool” where command
at+transparent
returnstrue
. -
“Confirmed downlink” check mark is set to
true
. -
“Base64 encoded string” field is set to
YXQrdmVyc2lvbg0K
.I encoded
YXQrdmVyc2lvbg0K
string using a web tool (here). There I enteredat+version <CR><LF>
string and set field “Destination newline sepparator” toCRLF Windows
before encoding.Note that RAK7431’s AT commands have to by definition end with a Windows new line i.e
<CR> <LF>
and not Linux new line<LF>
(source).
When I press ENQUEUE PAYLOAD, payload is enqueued (“FCnt” is 332
):
Immediately after this I get txack
(event)
{
"applicationID": "9",
"applicationName": "lorawan-test",
"deviceName": "RAK7431--001",
"devEUI": "rB8J//4DtNU=",
"fCnt": 332,
"tags": {}
}
and then soon ack
(event):
{
"applicationID": "9",
"applicationName": "lorawan-test",
"deviceName": "RAK7431--001",
"devEUI": "rB8J//4DtNU=",
"acknowledged": true,
"fCnt": 332,
"tags": {}
}
which has a key-value pair "acknowledged": true,
so the base64 encoded string was received by RAK7431 device, but is it possible that it couldn’t decode it because I can’t see any data comming back…
What am I doing wrong? Am I missing anything in order to get back the data? How is data even returned? Is it by an up
(event)?