Join MIC mismatch adafruit 32u4

Hello. I am not sure if this is a TTN problem or LMIC. (I suppose it’s LMIC) but I wanted some opinions before i make a bug report to github.

TTN refuses the Join MIC of LMIC (MIC mismatch), but accepts that of SlimLoRa.

I have run the decoder https://lorawan-packet-decoder-0ta6puiniaut.runkit.sh/ to verify that the MIC of LMIC is invalid but not for SlimLoRa.

I verified that AppEUI, DevEUI are the same via the above decoder. Except the MIC and DevNonce. PHYPayload is not the same.

Environment

  • LMIC: 4.1.1
  • Arduino: 1.8.19
  • EU868
  • Adafruit 32u4
  • AVR
  • HopeRF
cat ~/Arduino/libraries/MCCI_LoRaWAN_LMIC_library/project_config/lmic_project_config.h
#define CFG_eu868 1
#define CFG_sx1276_radio 1
#define DISABLE_BEACONS
#define DISABLE_PING
#define LMIC_MAX_FRAME_LENGTH 64
#define LMIC_LORAWAN_SPEC_VERSION    LMIC_LORAWAN_SPEC_VERSION_1_0_3
#define LMIC_USE_INTERRUPTS

TTN device settings (truncated json via cli)

"lorawan_version": "MAC_V1_0_3",
"lorawan_phy_version": "PHY_V1_0_3_REV_A",
"frequency_plan_id": "EU_863_870_TTN",
"supports_join": true,
"supports_32_bit_f_cnt": true

What have you turned off in the LMIC config so that there is enough free memory?

I’m happy to make it work on a 328 but not tried for a long time with a 32u4. It can appear to be OK but generally glitch due to lack of free RAM.

There’s some beacon stuff that can be turned off.

You could disable Join and use ABP to give yourself more space.

At worst, revert to Matt’s deprecated version.