cancel
Showing results for 
Search instead for 
Did you mean: 

I-CUBE_LRWAN End Node does not work stably

Ruslan Manianov
Associate II
Posted on May 05, 2017 at 09:34

Hello.

I try to use I-CUBE-LRWAN example End Node for stm32L152. Base station is iC880A with raspberry pi 3. Also i use

https://community.st.com/discussion/thethingsnetwork.org

. I ported this example to iM880B (stm32L151CB-A + sx1272). And my end node device easy joined to base station and to cloud. But after first sending frame with data, LoRaMacState == LORAMAC_TX_RUNNING. And when time is gone for next send frame,

LoRaMacState not cleared. So next frame is not sending while not reboot device. I found that after first send frame, in function OnRxWindow2TimerEvent():

if( RegionRxConfig( LoRaMacRegion, &rxConfig, ( int8_t* )&McpsIndication.RxDatarate ) == true )

{

RxWindowSetup( rxConfig.RxContinuous, LoRaMacParams.MaxRxWindow );

RxSlot = rxConfig.Window;

}

Condition not met, because 

SX1272.Settings.State == RF_RX_RUNNING, but must be 

SX1272.Settings.State == RF_IDLE. 

All parameters in example is default. What is wrong? How can I fix that problem? Thanks.

#stm32l151 #i-cube-lrwan
1 ACCEPTED SOLUTION

Accepted Solutions
Mikk Leini
Senior
Posted on July 05, 2017 at 15:04

I managed to find the reason for my problem.

The root cause was that the DIO1 signal from SX1276 was not connected to the SMT32 MCU.

I asked same question here also (with more details):

https://github.com/Lora-net/LoRaMac-node/issues/217

 

View solution in original post

8 REPLIES 8
Rafael Costa
Associate
Posted on June 16, 2017 at 10:53

Same problem here.

Does someone knows how to fix it?

Mikk Leini
Senior
Posted on June 24, 2017 at 21:37

Me too - same problem and similar setup (RPi GW + TTN back end). Except that I am building device on SX1276 and STM32F401 with FreeRTOS. First i thought my own implementation of timerServer based on CMSIS OS timers is buggy but now it seems something else. I also tried to remove frame counters and look for other settings from TTN console which might cause the device to stay in some intermittent state but nothing helped.

Have you guys found any solution meanwhile?

Edit:

I was using 

I-CUBE-LRWAN version 1.1.0 but upgrading to 

version 1.1.1 didn't help.

Fahad Mirza
Associate II
Posted on June 28, 2017 at 16:54

ruslan-maniak

: The data you are sending, is it confirmed data or unconfirmed?

Amel NASRI
ST Employee
Posted on July 05, 2017 at 14:50

Hi All,

Could you please precise the following for each one reporting the issue:

  • are you all using the version 1.1.1 of I-CUBE-LRWAN?
  • what is exactly the example you tested?
  • with which node? gateway? network server? ...

Thanks.

-Amel

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Mikk Leini
Senior
Posted on July 05, 2017 at 15:04

I managed to find the reason for my problem.

The root cause was that the DIO1 signal from SX1276 was not connected to the SMT32 MCU.

I asked same question here also (with more details):

https://github.com/Lora-net/LoRaMac-node/issues/217

 
Posted on July 05, 2017 at 19:51

>The root cause was that the DIO1 signal from SX1276 was not connected to the SMT32 MCU.

Is this an oversight by ST? Got any images of the fix?

Posted on July 05, 2017 at 22:11

Don't get me wrong. The problem was with my own custom prototype.

Posted on July 05, 2017 at 22:27

After finding the issue i also once again read the 'UM2073

I-CUBE-LRWAN middleware description' and found that chapter '

3.4.4 Interrupt lines' writes:

The DIO1 is used to signal that the radio has failed to complete a requested task (RxTimeout).

That explains why having DIO1 is important.