Significance of LoRaWAN classes in developing a LoRa Node with sensors

99 Views Asked by At

I am just curious about the LoRa technology and exploring about that I got stuck where LoRaWAN class (A, B and C) have been defined. My doubt is, if I want to design a LoRa Node with any LoRa enabled modules available in the market (By vendors like Ai-Thinker, Heltech, pycom etc) do I need to care about Class while programming the node for transmissions and receptions? Do they handled by the LoRa transceivers or we need to handle it by writing the code?

3

There are 3 best solutions below

1
On

You should consider what LoRaWAN class you want to use for the applications you want to develop. These three classes all have different behaviour:

  • A: only accepts downlink messages in 2 timeslots after an uplink message. The other time the node is unavailable to the network.
  • B: does all the A functionality but also allows for receiving of downlink messages on set moments.
  • C: this class can always receive downlink messages. No waiting for a timeslot or uplink is needed to communicate with the node.

Different tranceivers/mcus need different levels of care.

If I take the example of the RN2483, this node handles all the LoRaWAN interactions internally, you only need to configure what you want. (AFAIK it doesn't support class B/C at the moment but plans are made to support it.)

If I take the CMWX1ZZABZ, this processor is programmed directly and you need to make sure the code works for the class you want to use (A/B/C). The CMWX1ZZABZ comes with a LoRaWAN stack but you need to make sure it actually works as needed, the RN2483 handles everything for you.

0
On

In Internet of things one of the important factor is battery life. That is, how long can a device be left in production without maintenance.

For a low power device the most important aspect is optimizing the usage of battery. For every communication device energy is required to transmit or receive data. Also if the MCU and the peripherals of a HW is always awake then the battery will get drained very fast.

Therefore to increase the device life and support various use cases there are theree device classes.

Explanation about each class is given here: https://www.thethingsnetwork.org/docs/lorawan/classes/

0
On

The answer to your real question ending with question marks are the below.

do I need to care about Class while programming the node for transmissions and receptions? Do they handled by the LoRa transceivers or we need to handle it by writing the code?

You usually don't need to care about the class when your application layer code is using the LoRaWAN protocol stack through its API.

However,
when you define what kind of application layer messages your application server and your end device exchange, you need to be aware of what the actual LoRaWAN Device Class is and you need to know what latency of downlink messages may have.

For example, if your device is operating in Class A mode, (that accepts downlink messages only as responses to uplink messages), you may write into your application code that the device sends regular heartbeat messages that allow the application server to send downlinks as a response to one of those heartbeats.