Class B switch procedure

Hi All,

Does anyone know of a document that accurately describes the procedure followed by a wireless device and the network when switching from Class A to Class B ?

The obvious action as given in the example applications is the LmHandlerRequestClass( LORAWAN_DEFAULT_CLASS ) function (where LORAWAN_DEFAULT_CLASS was set to Class B). This initiates a procedure comprising a few mandatory steps, like a DeviceTimeReq/DeviceTimeAns, PingSlotChannelReq/PingSlotChannelAns, actual BEACON reception and PingSlotInfoReq/PingSlotInfoAns. But on some occasions the procedure gets stuck in an erroneous condition.

I’ve noticed it is necessary to send a few uplinks to trigger the various network responses, but sometimes I get stuck in an everlasting BUSY BEACON RESERVED TIME (I use a random uplink interval of 30 to 60 seconds). So, what is the official ‘way to go’? Does one have to use an uplink interval greater than the BEACON_Interval (128s), or is the locked BUSY BEACON RESERVED TIME a bug? I also tried restarting the uplink interval every time the LmHandlerCallback OnBeaconStatusChange returned a status LORAMAC_HANDLER_BEACON_NRX, but this did not solve the problem.

If someone knows the answer, please enlighten me. Thanks in advance !