Node don't get JoinAccept: ESP32, LMIC & wAP LR8


I try to connect my node to network. I have my own script, but I also tried with example from library (ttn-otaa) and I get the same result.

Furthermore, I got connection with gateway, ttn properly proceed join procedure, but it looks like my node never get downlink with authorization and then can’t send data. In logs, it look like this.
Node in application in TTN:
Gateway in TTN:

Serial from ESP:

I thought that problem can be in too close communication, but I take my node to walk and outside the building in range of 200m I still get results like this.

Maybe someone know where I made mistake.

Leave the node stationary for a few min in the room next door, the RSSI is -60 → -80 or so and see what happens.

I took node to bathroom so it is something like 15m and wall with wardrobe.

In gateway, I see RSSI between -75 to -95, but still nothing new in application live data.

In example, I only add my auth data and define new pin_map:

const lmic_pinmap lmic_pins = {
    .nss = 5,
    .rxtx = LMIC_UNUSED_PIN,
    .rst = 13,
    .dio = {27, 14, LMIC_UNUSED_PIN},

I also tried to add some configs according to some posts on forum:

    LMIC_setLinkCheckMode(0);   // Disable link check validation
    LMIC_setAdrMode(false);     // Disable ADR
    LMIC.dn2Dr = DR_SF9;        // TTN uses SF9 for its RX2 window.
    LMIC_setDrTxpow(DR_SF7, 14); // Set data rate and transmit power for uplink (note: txpow seems to be ignored by the library)

Don’t. The defaults should be right and by setting things differently you have worse settings and one is actually wrong when using OTAA (the dn2Dr setting, during the join TTN will set this to the correct value)

Sorry for the lack of contact, but I had some problems.

Okay, I start again with a totally clean example. I add only my addresses and my pin map. I still get the same results. When I tested it, had a router in another room (5-10m) and wall between us. RSSI in gateway logs is between -65 and -85.

Where can I have mistake?

Maybe you should buy a known good device with a documented pin map to test with - that way you can eliminate any issues with the radio on your unknown ESP32 device.

I have WiFi LoRa 32(V3), but now I know it’s not the best choice (too new module with lack of support). I will try to buy something with SX1276.

But if I have uplink communication, it’s possible to have something meshed up with physical connection on board? Are there some pins related only to retrieve downlinks?

For that device, RadioLib can be a good choice, as that supports SX126x series radios as well as SX127x. The wiki for RadioLib is a WIP, but the examples and their notes should be able to get you started on most of the basics.

Thank you, I will try with this. Sadly, original library and wiki from heltec is nightmare.

Is this the original device or the alternative device?


I again try to figure it out and now I sure my gateway send downlink, but still my node didn’t get i or can’t handle it. On my SDR graph I can see on signal from node and second one stronger from gateway. The second signal appears in the same moment when in serial monitor I get EV_JOIN_TXCOMPLETE: no JoinAccept.

I also make attempt wih ABP connection and with provided example it works properly. I received proper message:

So for me it’s looks like my node working, but for some reason I have problem only with receive downlink. What can be wrong? Wiring or maybe some problem with my antenna?

We try to keep our posts tidy so we can scan through them - please crop down pictures to remove the larger blocks of non-info.

Well it’s working in one direction, so perhaps half working.

Can you queue ONE downlink whilst in ABP mode to see if it arrives in the serial log which should be posted as text.