What is the format of LoRaWAN application layer frame?

We all know that the format of LoRaWAN physical layer is as following:
It is showed in the LoRaWAN specification, but I can’t find the format of LoRaWAN application layer frame, I wonder what does it looks like?

Hi @David2044, the LoRaWAN payload is just bytes of binary data, there is no real standard about how to use the bytes. You are free to write software that uses the payload bytes in any way.

Some organisations that offer cloud-based dashboard and analytics services need to see payload data that has been encoded in specific ways. The Cayenne Low Power Protocol (CayenneLPP) is an example of this with software libraries available for use on devices to encode and decode payloads.

There is a lot of wisdom, experience and best-practice published on this forum. Look for the posts by user arjanvanb and read the documentation.

The TTN application server allows you to install a payload decoder written in JavaScript. In many ways this offers the nearest thing to a standard as any LoRaWAN binary payload can be decoded and presented as ascii JSON using the MQTT and HTTP integrations.


Thank you for answering my question! I know that the LoRaWAN payload is just bytes of binary data, but I am not free to use the bytes. The I have to obey the rules of LoRaWAN specification. It obviously says that the frame format of physical layer and mac layer must look like the following:

If the frame I used didn’t have the same format , It won’t be able to join a LoRaWAN network. My question is why the LoRaWAN specification only has rules about physical layer and mac layer? Does it has any rules about the application layer, for example the format of the application?

Do you know anything about the application layer?

Hi @David2044, I do know all the details of the application layer for the devices and applications that I have developed and that I own. For devices that I deploy that are manufactured by others I know enough to use the devices and applications.

I think that this topic is about the FRMPayload which is in the image that you posted earlier. Please refer to the LoRa Alliance standards.
If the FPort is zero then the FRMPayload field contains a MAC command and this is structured per the MAC commands section of the standard. If the FPort is not zero then the FRMPayload contains an application payload.

The LoRa Alliance does not apply any standards to applications payloads so, per my earlier posting, you can use the bytes in any way that works with the device and the application. If you are the developer of the devices and the application then you have complete control. If you are the developer of a device but are using a supplier’s application then you will normally have to use their standards for the application payload.


That is exactly what I want to refer to. I finally understand from the last paragraph of what you said. Thank you very much! You are so nice!

that’s great ! are you planning to implement this with only one SX1301 ?

How about implementing this with fourteen SX1278 as gateway?
What is the advantages and disadvantages compare with one SX1301?

it saves a lot of time :rofl: