LMIC Downlink

Hi everyone!
I did a node with an arduino uno and a rfm95w and im sending data really well, also to cayenne page, but im getting some difficulties in downlinks.

I´m thinking that my pin mappin isnt good enougth to Rx messages node maybe?

const lmic_pinmap lmic_pins = { .nss = 10, .rxtx = LMIC_UNUSED_PIN, .rst = LMIC_UNUSED_PIN, .dio = {2, 5, LMIC_UNUSED_PIN}, };

i dont know if this could be the problem… The thing is that this part of the code is never executed:

if (LMIC.dataLen) {
Serial.println(F(“Received “));
Serial.println(LMIC.dataLen);
Serial.println(F(” bytes of payload”));
}

i cant see the receive data in my node, and im sending downlinks through the ttn page.

Could someone tell my the best way to see the receive data in the node?
What am i doing bad?

Are you using a single channel gateway?

Modify your node firmware to print out when it operates the radio in receive mode, and with what settings. Compare this to transmit logs of your gateway.

im honestly not very sure… How can i see this?

what should i modify on my node firmware for do what you are saying? I modify something like LMIC_DEBUG_LEVEL from 0 to 1 in the config.h library of LMIC… but nothing changed in my node serial monitor. Should i do something more?

Here i attach my full node code (is just a test code), maybe you see something is bad or maybe something i have to modify to receive data…

Thanks for the help!

node_code.txt (11.1 KB)

You’ll have to take time to understand your node firmware to find good places for debug code. As a guess for LMiC try printing out frequency, spreading factor, etc in the RADIO_RX case in radio.c, ideally do it after it starts the receiver but before waits to see if there is a result, so that the printing doesn’t mess up the timing

If it’s not your own gateway, you might have an idea by looking at TTNMapper.