STM32 Nucleo pack + I-CUBE-LRWAN V1.3.1 libraries configuration problem

First of all, I am a newbie on LoRa and I only start working with LoRa 15 days ago. So, my apologies if I am doing/saying some really basic mistakes.

To start my adventure on LoRa communication, I research a bit on the available solutions and I find out that I would require both a gateway and an end node to do the project that I am working. From the solutions available STM32 Nucleo pack (a Lora gateway with NUCLEO-F746ZG and a Lora HF BAND gateway expansion board with the Semtech SX1301 HF baseband data concentrator + a sensor device with NUCLEO-L073RZ and the I-NUCLEO-LRWAN1 sensor expansion board) seemed a good option because it is very affordable and has both a gateway and an end node from the same manufacture.

As soon as I received my starter kit, I followed the guidelines on the official documentation, and I successfully set up my network on the TTN. I was able to visualize the Lora messages on the TTN console and the graphical data on the Cayenne. Until here, everything was quite simple.

My next move was to update the firmware of the end node with the end node example on the I-CUBE-LRWAN STM32 Expansion package V1.3.1. Again, I followed the guidelines and on the commissioning file, I set the parameters for the DevEUI, AppEUI, and AppKEY provided by the manufacture. Then, I compiled the code and uploaded it to the board. Here is where my nightmare started. After this step, I was not able to receive messages from my end node anymore. I tried several different things but every attempt put me even further away from my goal.

During this process, my gateway status on the TTN moved to disconnect and, despite several attempts, I cannot make it online again. On my last attempt, I moved to the Loriot sever and I successfully connected my gateway and I could see that the gateway is sending the keep-alive on a regular basis. I can also see on my serial port that the gateway initializes successfully. However, even on the Loriot server, I was not able to receive data from my end node (probably I cannot use the same AppEUI registered on the TTN server).

Since my gateway was working on the Loriot server, I tried again to put it running on the TTN server but I am failing miserably. I am struggling with this for two weeks and I have no clue how to overcome this.

Please, any help on the configuration is welcomed and if you need more details please ask. My region is EU868.

Sorry for the long post :frowning:

The root of your problem seems to have been the change of the node firmware. It may even be that is the only problem, in that the gateway may look inactive if it’s not passing packets through from a node.

Perhaps you can find a hex / binary image of the original firmware and put it back.

You should however be able to build other firmware which works, I think I had LoRaMAC-node working at one point (though not quite stock, I used a different build process).

It’s very useful to make node firmware log what it is doing - for example, I’m transmitting these bytes on this frequency with these settings. Long run, log messages can interfere with the timing of receive windows, but you can put them in now to debug the transmit side and take them out (or make them safer) later when worrying about downlink reception. Incidentally, this is why it’s great to have your code in a git repo - either clone the original, or commit the manufacturer’s starting point, as then you can readily see what changes you made and back up to the last working point anytime something breaks.

First of all, thank you @cslorabox for the feedback. I am really without ideas to come around this problem.

About the Gateway, I also believe that it can be something like that.

About your suggestion, I completely agree with that strategy and I usually do that. However, I haven’t access to the original firmware of my end node. It was already loaded on my evaluation board and I only extracted parameters like DevEUI, AppEUI, and AppKEY. Then I use these parameters to program my board with the end node software example of I-CUBE-LRWAN V1.3.1. I was expecting to be a smooth move since both the software and the evaluation board are made by ST.

Do you have an idea where can I get the image of the original firmware? I see it for the gateway but I couldn’t find it for the end node. Only for arduino ide.

Thank you soo much for the help.

Hello @AndrFerreira,

I am working the STM32 LoRaWAN pack.
I am also facing the problem with I-CUBE-LRWAN STM32 Expansion package V1.3.1.
My End Node is sending join request to TTN but no join accept.

Did you fix the problem?
If yes, could you please explain how did you fix it?

NUCLEO-L073RZ is not showing any output on the serial monitor.
My serial monitor setup:
image
Please let me know if you have solved this issue.

Thanks and Regards,
Rahul

How do you know join requests are being sent?

Are you monitoring the correct serial port? What baud rate does your STM32 code set?

Hi,
I am receiving the join request in my TTN console with correct devEUI and appEUI.

TTN is accepting the device.

But device is continuously sending the join request.

For serial monitoring, I am following the user manual given by ST.
image

Thanks and regards,
Rahul

Isn’t that note about the serial interface of a different product?

You need to study the code you are actually running and find what it is doing in the way of serial. If things are unclear, use a scope on the indicated pins.

Then consider what you are attempting to use to get the serial data into your PC, for example are you using the virtual serial capability of the on-board debugger? If so, what serial port have you selected on your pc?

Hello @cslorabox,

Thanks for the clarification.
Since we had received the Nucleo board mounted with I-NUCLEO-LRWAN1 expansion package. I was connecting nucleo board to serial monitor.
But I think I should try connecting the expansion board to serial monitor and test.

Regards,
Rahul

Hi Guys, I believe I can contribute to this thread, since I had similar issue.
After I uploaded the AT_Master code to the nucleo-l073 with the i-nucleo-lrwan shield on top, it stopped sending anything. The root cause I found was an issue with the Debug definition within the code, so I just disabled that and it started working again, this lines I commented the following lines from main.c and uploaded and started working again:

#if 1
  DBG_Init();
#endif

In my code that I have modified this is sit between lines 143 and 145.
Another good thing I did to help me, was to use the ARM Keil IDE instead of STM32CubeIDE.
For the Gateway, the disconnect behaviour looks normal, since it is based on the Basic Semtech UDP packet forward, it doesn’t send Keepalive messages, only when a node is transmitting, then it updates the satatus.

Hopes this helps.
Rony V.