RAK7249 payload

Hi guys,

I have an arduino and a gps module to be interfaced with RAK811. I would get the GPS coordinates with the GPS module and send it to the gateway through RAK811 wisnode. My question is, would I need to encode my GPS data into hexString payload format before giving it to the RAK811? ( as I have noticed that using the AT command, at+send=lora:1:123456, β€˜123456’ is already in the hexString format)?

Moreover, when I received the node data at my RAK7249 gateway, how can I decode it, back to its original data? Btw, i am using the RAK7249 built in server and already change the Decode/Encode format to hexString.

Thank you

You can use HTTP integration and process the data(decode it) somewhere else. Yes it will be good to use HEX data. If you want to use base64 you have to decoded it to hex to use it.

Thanks for the @velev.

On the RAK811, if I want to send the GPS data from my GPS module, I should encode the GPS data into hexString format, then put it the hexString data into the AT command for the loRa transmission. Is this right?

Basically the format of the payload should be hexadecimal, so if you do not use any other characters :slight_smile: you can send it. The easy way is with AT commands the more sophisticated is to use RUI API and to add this in the code.

Noted @velev.

For example:
From my gps module, GPS.altitude=110m;
To send this data, I would convert 110 to hex, which is 79. Using at command, at+send=lora:1:79 ? Then after receiving by the gateway, decode this at an application to 110 again? Is this right?

Sorry I am new to all of this

If you sent at+send=lora:2:0110 you will receive in Built-in server exactly 0110 (0 in front 110 is for make the byte format). If you want to save airtime you can code data to hex( , you will receive it and the have to decode it from hex to what you want in external decoder. In general if you want to send only plain numbers - no need for conversion, just sent it. If you want to sent text, comma separated values etc - you have to code them in hex.
If i was not clear, please feel free to ask.

Alright @velev . So if I want to send the string β€˜LAT’, i need to sent at+send=lora:1:4C4154? Since L=4C, A = 41, and T=54 in Hex. Then will just decode this at the application?

Yes. You will see 4C4154 in payload in application. Then you can make http integration and decode this to text somewhere.

Noted. Thanks @velev. Is there a limit to the number of bytes/hex be sent per transmission?

Yes there is. It depends on many things. So please read this for better understanding https://lora-alliance.org/sites/default/files/2018-04/lorawantm_regional_parameters_v1.1rb_-_final.pdf

Thank you for this @velev. If i may ask, is there a HTTP integration site that would you recommend? I am also planning to get the metadata of all of my node transmissions, is there a way for this? Thank you

Am… i will suggest you to build yours, hosted on AWS or at your local Appache server. There are some services like Thingsboard.io and Ubidots that you can check.
If you want to just view what the HTTP integration will make as output, you can try this https://webhook.site

1 Like