Class A and Class C in same device profile


My node is working in Class-A, but sometimes I need to use Class-C to send data to node, Node habe this ability to switch class when require, but Chripstack side, I have to change device profile to class C.

Is there any method by whick I can switch to class-c in chripstack when require and switch again to Class-A?

Thank You

How would the NS know when the device switched to Class-C and back to Class-A? If this is done out-of-band (application payload), then it would mean you need to make an API call to change the device-profile to toggle the Class-C support on or off.

The TS005-2.0.0 Remote Multicast Setup specification could be used to create a temporary Class B or Class C session.

Chirpstack already supports this when using the FUOTA server. Just be careful about the specification version as I guess that currently the FUOTA server implements v1.0.0 of the specification.

1 Like

@mluis1 but that is for multicast sessions, isn’t it? From the initial question, I assume this device can switch between unicast Class-A to Class-C.

One of the Remote Multicast Setup specification features is to create a multicast channel and the other associated session.

Nothing prevents to create a multicast channel and to not uses it.
In this case we are just interested in having the end-device to switch to Class C at a given time with given parameters for a given period which is known from both sides of the network.

The multicast downlinks are the same as unicast the only difference being the DevAddr + Keys being used.

I did not try this my self however I suppose that ChirpSTack provides means to trnasmit unicast or multicast downlinks upon user request.

Another possibility would be to use LoRaWAN 1.1.x version which defines a MAC command which indicates to the network server when the end-device has switched to ClassC.

Please look at chapter β€œ18.1 Device Mode (DeviceModeInd, DeviceModeConf)” of LoRaWAN 1.1 specification.

Yes Device has ability to switch between Class A and Class C.
I want to know about any API or other method which can be used to switch between Class A and Class C on chirpstack, I have a script which uses MQTT integration and send Downlink to chirpstack for device,

What I want to send a command to device to Switch Class c and then fire some important command continuously, and switch back to Class A.

Could you first explain to us how this change from Class-A to Class-C works? is this initiated by the end-application and if yes, how? Or is this initiated by the device and does it signal to the end-application that is has switched class and if yes, how?

There are many ways how this can be implemented. As @mluis1 mentioned the device could use the Remote Multicast for this for example, or if the device implements LoRaWAN 1.1.x, it could use the DeviceModeInd mac-command to signal the switch from A/C. It could also be that this is implemented in a different way, but knowing how this is implemented helps in providing a good answer to your question :slight_smile:

1 Like

I have make commands to configure my node parameters like temperature alert range, data rate change, ADR Enable/Disable, Class change command. So, when I need to chnage class I manually send a downlink command (Device in Class A currently), then when device send data (periodically each 8 hour), then if it receive downlink command to change class, it changes class and send command response over Lorawan, So my script knows that class change done,
now I stucks in next step is to change class in Chirpstack, my node implements Loramac_1.0.3.