Board/Firmware doesn't see the join accept message from TTI

We use TTI and LMIC on our boards.
We have a large stable solution, having collected 13 million messages.
We are migrated to a new version of the circuit board. Same microprocessor (Mega 2560) and same LoRa chip (RM95W). We are porting the firmware from the old circuit board to the new circuit board.
The board/firmware is connecting with TTI and TTI is sending the forward_join_accept message.
But the firmware is not receiving this message.

Any suggestions as to what could be causing this? I would appreciate the assistance.

There will be a difference in the two circuits!

Unless you’ve upgraded the firmware when there will be a difference in the firmware.

Or both.

The forum is littered with “JA not heard/received” or “LMIC won’t join” or similar - mostly it’s due to RF and the proximity of the gateway. Search will reveal more.

Without copies of the schematics, PCB or firmware, that’s the best most of us will do. I regularly hack around with all sorts of discrete radio modules and dev boards &/or SOIC/SSOP MCU’s mounted on generic breakout boards and mostly they just work. When they don’t, it’s due to a difference, sometimes called a mistake or cockup.

In the meanwhile, I’m sure @rish1 will be happy to help you migrate from TTN (the test & non-commercial use instance) to a place of safety for you & your clients.

Hi Nick,
Thank you for the reply. We do use TTN (we call it TTI in our day to day speak).

I appreciative that there may be a difference the hardware. And the board is within 20 m of the nearest data gateway for development and test.

I was seeking guidance on a systematic approach to investigating and debugging this issue.
Like is there a way that we can see what messaging the firmware is receiving?

Keen for your reply. And would TTN provide additional support in these matters?
We have run the firmware on the previous boards for many years without a single issue.

Regards Andrew

Hopefully at least 5 meters and a wall away from the gateway?

That depends on the firmware. Most LMIC examples I worked with used serial output for debugging. However this is often stripped from the code to conserve memory and given the resource constrained controller you are using I wouldn’t be surprised if that had to happen to fit LMIC in that controller.
What you can do to debug heavily relies on your firmware and hardware. When I don’t have serial I usually attach one or more LEDs and use them to signal where I am in the code. On when receive window opens for instance and off when nothing received.

If it works on v1 and not on v1, look at the changes you made.

There’s no point doing help desk level “is it turned on” so the system I’d use is to cut to page that says “look at the changes” because v1 works and v2 doesn’t.

Due to the number of moving parts I think debugging hardware / firmware / gateways / LNS config / payload decoding / the backend doesn’t have any published universal proscribed system - believe me, I’ve thought about it a lot to help resolve the issues that come up here.

Curious how resistant people are to forum search which has many of the same things over and over (like no JA received) so actually writing one would devolve down to constantly putting links to the debug flow chart.

The Mega has mucho space for everything - including it’s die area which is why it doesn’t come up much in LW world, but you can turn on the debug, I think it goes to eleven 3. It will show you when it has opened the Rx window(s) at the appropriate times but if for whatever reason the radio doesn’t hear anything it can report back, then all you get is a timeout.

So if you search for JA not received and how a 20m gap may be overloading the input circuits, you may figure things out.

You, me, @kersing and everyone else on the forum are TTN.

If you mean can TTI help, possibly, but that’s paid support and frankly I doubt they know as much about LMIC as the forum users because it’s not a completely compliant stack.


Perhaps to be more explicit & potentially systematic:

  1. Did you change the schematic? If so, what changed?
  2. Did you change the PCB? If so, what changed?
  3. What is the antenna on the device?
  4. What is the antenna on the gateway that’s 20m away?
  5. Did you upgrade LMIC to the latest version? If so, have you tried the old working firmware?

Hi Jac,
Thank you for the direction.
We are only using 15% of the memory of the Mega 2560 so we have plenty of room to work with.
You steer is to use LED’s and serial output for debugging.
Thank you and I will get into that tomorrow.
Regards Andrew

Thanks Nick,
Plenty to work through.
Regards Andrew