Downlink Class C - Cube cell problems

Hello,
I am using the LoRaWAN_downlinkdatahandle example.

My downlink works just fine in class A. However when I try a class C device ( and make the update at my chirpstack) the device do not print the downlink message. When I active the debugg mode I can see the there is an erro on RX receiver and the green light of the rgb stands still for some seconds.

So, I think my node is receiving the downlink however there is no function to deal with it in class C!

Could you help me?

hi,

The CLASS of the server and the node should match.

Have you changed your server’s CLASS?

I’m using Chirpstack as application server, in my device profile I have the following:


If is that I have already done. It really looks like a problem of the lib for me. Also I think the only difference when mark the device supports class C is that the downlink will be sent immeadiately after it was posted.

I have tried the wirelles stick lite and works like a charm using the same device profile.

hi,

Could you try the following two points? I’ll try to describe it as well as I can.

  1. What is the lora gateway with you using? We think it may be that the frequency points of the gateway and the node are not aligned. Could you try to modify the frequency on the Picture below?
    you can try modify within ** +20K.**

  2. The default DR of the RX window2 is DR_8.
    %E5%9B%BE%E7%89%87
    Its corresponding MaxPayloadOfDatarateUS915 is 53.


    Can you test the length of the downlink?

As soon as I have tried I ll post here!

I try all your suggestions and no change. Is very hard to RX. I try with 10000 and 20000
Radio.SetChannel( frequency + 10000); //Hack sugerido por jason

I try DR5: LoRaWAN.setDataRateForNoADR(5);
I try DR0 and ADR on

also:
uint8_t confirmedNbTrials = 1;

image

image

Hi dserrano
Is the code running our examples or your modified code ? If it’s modified code , can you try the examples to see if the problem occurs? And can you give me your code? Do you add code in case DEVICE_STATE_SLEEP?
%E5%9B%BE%E7%89%87

delay could be added before LoRaWAN.send(). Added delay or code runs for long time after LoRaWAN.send(), the chip will too late to process event that if there is event it is processed in Radio.IrqProcess() (for old version, Radio.IrqProcess() is in LoraWan.sleep()).

you can have a try update the sdk from our git ,and put your code as :
%E5%9B%BE%E7%89%87

We updated the sdk that can simply get lorwan status with para “LoRaMacState” since got this topic.
When LoRaMacState != LORAMAC_IDLE, other code may break the lorawan process.