Arduino nano and RFM95 basic test - EV_JOIN_TXCOMPLETE: no JoinAccept

You won’t see changes in the device’s logs. The device calculates a MIC using the secrets it knows, and then just transmits. But if one or more gateways receive it and forward it to TTN, then TTN cannot validate the MIC if the secrets in TTN do not match the secrets that the device uses, and will drop the message.

No, no it’s not!

It uses MSB.

It does, and it’s says so in the code.

// This EUI must be in little-endian format, so least-significant-byte
// first. When copying an EUI from ttnctl output, this means to reverse
// the bytes. For TTN issued EUIs the last bytes should be 0xD5, 0xB3,
// 0x70.
static const u1_t PROGMEM APPEUI[8]={ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
void os_getArtEui (u1_t* buf) { memcpy_P(buf, APPEUI, 8);}

// This should also be in little endian format, see above.
static const u1_t PROGMEM DEVEUI[8]={ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
void os_getDevEui (u1_t* buf) { memcpy_P(buf, DEVEUI, 8);}

// This key should be in big endian format (or, since it is not really a
// number but a block of memory, endianness does not really apply). In
// practice, a key taken from ttnctl can be copied as-is.
// The key shown here is the semtech default key.
static const u1_t PROGMEM APPKEY[16] = { 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C };
void os_getDevKey (u1_t* buf) { memcpy_P(buf, APPKEY, 16);}

But let’s get ABP working first, we haven’t shown that it even uplinks yet.

1 Like

Where to do that? On TTN side, my device, I see only simulate uplink, nothing to expand here.

Is this not like buying an entry level gaming machine - still much can be done and when you start hitting the boundaries, you look to upgrade.

The demotivation comes when starters think an Arduino ATmega328 is the be-all and end all - which is wrong thinking and if that is there normal thinking, they are lost before they start.

Most of the issues on this forum are people running before they can walk, no scientific process and not reading around the subject. This is very hard to fix.

Simulate an uplink? Can’t be done.

An uplink is your device sending a message out in to the ether, a gateway or more picks it up, relays the data to TTN, if the keys are OK, it sends it to your application console.

If uplinks aren’t working, downlinks (devices receiving) will never ever happen.

Easily checked indeed:

Format of Keys and ID’s for Arduino LMIC libraries [HowTo]

Above holds for both for Classic LMIC and MCCI LMIC.

I simply don’t know if your LMIC library uses MSB or LSB for ABP.

If the LMIC library used is different than Classic LMIC and MCCI LMIC then I would suggest to use and test with either of these libraries in the first place.

For information about naming see: Arduino LMIC library naming: Classic LMIC and MCCI LMIC [HowTo]

No, because we will not see those people on the forum. :grin:

I urged use of the Classic Matt LMIC, the OP tends to switch between tests …

Dang, and here’s me having just upgraded last night to an i7, 24GB and GTX 970 to run Condor (Sailplane) flight simulator better - but if I put a LoRaWAN temperature sensor device on the CPU & GPU, I’ll be back to you with support questions.

OK, my device is sending “hello world” once a minute. I posted above more details that It outputs in the console. Do you want to re-post it one more time or I don’t understand something…

If you could - it’s got to be a long thread, I’ve just scrolled through and can’t see anything obvious, over the life of the thread I’ve probably contributed to 30+ other posts here & on RAK forum, I’ve built multiple devices, had a major tooth abscess and a birthday (so I’m even older now). So my brain is full!

This screenshot you wanted to see?


Sorry, no, the TTN console, like this:

Screenshot 2020-10-15 at 11.03.53

This is a device like yours, with a DHT11 and a DS18B20 on it, using the same code base.

Which means I’ll need to turn the heating on in that part of the building for lunch time.

This one?


I don’t see any uplink here…

My screen shot says “Uplink”, so that’s a BIG no from me, says Simon Cowell.

There should be a counter entry and it should show the current time so we know the devices is currently uplinking. I am aware you are in Paris, so I’ll translate the timezone info.

But my screenshot says, I don’t have any uplink message received.

If that is the case, then your Arduino has commanded the radio chip but it doesn’t know that nothing was actually transmitted. Which means it is likely you have fried some part of the RFM95 when it was connected to 5V …

No, it shows the first line of the log, I don’t know if you put in a downlink and have an uplink underneath that you didn’t show.

Well, if I will test Lora to Lora node communication, this should prove that my modules are not yet fried, that’s right?

Yes, or use an SDR dongle to look for the chirp.