Class-C device showing Class-B flag true

Got a strange thing in notice.While using a device in Class-C, when i send a downlink data greater than 45 bytes, the class-B flag gets TRUE along with the fPending bit.

Server: gateway-bridge: 3.2.1-1-g040e19f, network-server: 3.2.1, application-server: 3.3.0-7-gdf3d2d2

End-node: Class-C, LoRaWAN MAC version 1.0.1, ADR- true
Case-1) Data less than 45 bytes
Class-B: flase
fPending : false

Case-2) Data greater than 45 bytes
Class-B:true
fPending : true

This is because they share the same bit :slight_smile: (thus the same bit has a different meaning depending uplink / downlink).

On uplink the bit is assigned to classB
On downlink the bit is assigned to fPending

In order to avoid code duplication, there is only one FCtrl implementation for uplink and downlink. Therefore you see both fields appear for both uplink and downlink.

2 Likes

Hi There!
Which library could I implemet for testing de class C?
I’m using the lmic library so I can’t implement it.
Thanks!

It depends on which platform and SoC you are using to build own device. Each vendor can provide their libraries and toolkits. Anyway you can try to search this on GitHub

One option could be:

As long as you use one of the boards that are already supported, it should be pretty easy to build the Class C example application :slight_smile: