4 years, 7 months ago.

P-NUCLEO-LRWAN1 rx timeout sometimes never happens

  • The system:

I am using the P-NUCLEO-LRWAN1 board that is composed of a NUCLEO STM32L073RZ and a SX1272 mbed shield from Semtech. My gateway is a Raspberry Pi 2 and a iC880a board and is connected with "The Things Network" (TTN).

  • The software:

I started from End_Node sample provided by ST from STM32CubeExpansion_LRWAN_V1.1.0 package. I changed, in Commissioning.h, only LORAWAN_DEVICE_EUI, LORAWAN_APPLICATION_EUI and LORAWAN_APPLICATION_KEY in order to match the node's configuration in The things Network. I am using OTAA activation (as default in code sample). I activated DEBUG definition in hw_conf.h.

  • The application procedure:

the sample application start sending data to TTN in order to start the join procedure. This procedure always run correctly and the join procedure closes with success. Following the log on terminal connection: OTAA DevEui= 00-08-87-42-20-B5-07-FB AppEui= 70-B3-D5-7E-F0-00-51-5F AppKey= 6B 65 FE EC C1 01 DE 55 C4 38 80 29 48 33 B6 E8

VERSION: 44011000 txDone rxDone JOINED

After the join procedure the application have to send the first sensors data. In accordance to the lorawan standard for class A devices, after the transmission, 2 rx windows must be opened in order to receive data. A timeout must occur if no data are received.

At the moment, in our implementation, no data are sent vs sensors so only transmission from sensors to server are implemented.

  • The problem:

Sometimes, more or les 50% of the time the rx timeout never happens and the application, waiting for rx data continuously and hang on that loop forever. When the procedure run correctly I read on terminal

txDone rxTimeOut rxTimeOut

When the procedure fail I read on terminal only

txDone

and the system loop forever waiting rx timeout

The rx timeout must be managed by SX1272 and should be fired on DIO1 that is connected to STM32L073RZ on D3. With the oscilloscope, I had verified that when the procedure run correctly the irq edge is hold but when the procedure fail the edge is never detected.

Question relating to:

1 Answer

4 years, 7 months ago.

Dear Claudio,

I use differed mbed boards with the Lora SX1276 based chipsets, here is the link of my work:

https://developer.mbed.org/questions/78000/Support-for-the-STM-B_L072Z_LRWAN1-LoRa-/

This works great for different 1276 modules, for the 1272 based boards I don't have any experience.

Regards Helmut