Hello Hiren,
What examples are you using? The one from the BSP or the one from our WisBlock Repo ?
What network server are you using?
Three things to check:
Disable ADR
static lmh_param_t g_lora_param_init = {LORAWAN_ADR_ON, LORAWAN_DATERATE, LORAWAN_PUBLIC_NETWORK, JOINREQ_NBTRIALS, LORAWAN_TX_POWER, LORAWAN_DUTYCYCLE_OFF};
to
static lmh_param_t g_lora_param_init = {LORAWAN_ADR_OFF, LORAWAN_DATERATE, LORAWAN_PUBLIC_NETWORK, JOINREQ_NBTRIALS, LORAWAN_TX_POWER, LORAWAN_DUTYCYCLE_OFF};
Change the send frequency to a longer interval
#define LORAWAN_APP_INTERVAL 20000
to
#define LORAWAN_APP_INTERVAL 30000
Change the datarate
#define LORAWAN_DATERATE DR_0
to
#define LORAWAN_DATERATE DR_3
ADR
Adaptive datarate was reported several times to create problems. Proposal is to keep it off.
Send Interval
20s is quite short since network servers changed the RX times to up to 6 seconds. It could be the packets are transfered to often which causes a problem that the LoRa transceiver is still busy when the next packet is transferred.
Datarate
The examples use DR0, which is the smallest packet size (19 bytes in US915). That should be sufficient for the data packets, but it is on the limit and can cause problems.