Help on LORAWAN Downlink

I also noticed my Device profile settings page, the RX1 & RX2 are set by zero. Is it mandatory that we should set these values for downlink?. If so, kindly let me know the values I should set for IN865 band. PFA for my current settings page.

TIA

Try to disabled class c in device-profile.

Tried without Class C. But no improvements.

  • I am not seeing the server uses RX2 frequency for downlink. It uses the same uplink frequency. Is it normal for Class A?.
  • Also like to know if there is anyway we confirm that the gateway is forwarding the downlink datas to the node hardware?.
  • Do we have any configuration need to be done on gateway side for RX2?.
    TIA

For class A mode, the downlink sends by rx1 by default, but for Class-C it will use the RX2 settings.


You can send a confirmed downlink from the server to the node to confirm whether the node has received it.

@ZhuQI Ok, I understand.
No data received even I sent confirmed data from the server.
What is the purpose radio_1 on the gateway’s global.conf.json file?. Is it belongs to downlink communication purpose?.

TIA

Hi @ZhuQI
I found the tx_enable is false by default in my global_conf.json file. Once I enabled tx_enable by true, the gateway service is completely stopped. The log is as below,

pi@rak-gateway:~ $ sudo service ttn-gateway status
● ttn-gateway.service - The Things Network Gateway
Loaded: loaded (/lib/systemd/system/ttn-gateway.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Mon 2019-12-30 15:07:16 IST; 689ms ago
Process: 3129 ExecStart=/opt/ttn-gateway/packet_forwarder/lora_pkt_fwd/start.sh (code=exited, status=1/FAILURE)
Main PID: 3129 (code=exited, status=1/FAILURE)

Dec 30 15:07:16 rak-gateway ttn-gateway[3129]: INFO: local_conf.json does contain a JSON object named gateway_conf, pars
Dec 30 15:07:16 rak-gateway ttn-gateway[3129]: INFO: gateway MAC address is configured to B827EBFFFE92CA25
Dec 30 15:07:16 rak-gateway ttn-gateway[3129]: INFO: packets received with a valid CRC will be forwarded
Dec 30 15:07:16 rak-gateway ttn-gateway[3129]: INFO: packets received with a CRC error will NOT be forwarded
Dec 30 15:07:16 rak-gateway ttn-gateway[3129]: INFO: packets received with no CRC will NOT be forwarded
Dec 30 15:07:16 rak-gateway ttn-gateway[3129]: INFO: [main] TTY port /dev/ttyAMA0 open for GPS synchronization
Dec 30 15:07:16 rak-gateway ttn-gateway[3129]: ERROR: [main] failed to start the concentrator
Dec 30 15:07:16 rak-gateway systemd[1]: ttn-gateway.service: Main process exited, code=exited, status=1/FAILURE
Dec 30 15:07:16 rak-gateway systemd[1]: ttn-gateway.service: Unit entered failed state.
Dec 30 15:07:16 rak-gateway systemd[1]: ttn-gateway.service: Failed with result ‘exit-code’.

Once I make disable tx_radio by false, the gateway starts working. Is it mandatory that we need to enable tx_enable for downlink transmission?.

TIA

Hi All,
I am trying to achieve the downlink on Chirpstack for some time. But no success so far. I was able to get the downlink done in short period of time on TTN. But not able to achieve it on the chirpstack. Its difficult to find the clear guidance for downlink on chirpstack. I would like to share the steps I have done here to cross check my procedure, configuration and fix the downlink issue.

Settup details
Frequency Band : EU868
Node hardware : Arduino Uno
Library : LMIC
Gateway : RAK 2245
Lorawan server : RAK test server

Node program :
Using the default ttn-abp program from lmic, here
Program uses EU868 band
Using LMIC.dn2Dr = DR_SF12; for chirpstack and LMIC.dn2Dr = DR_SF9; for TTN.
Confirmed with TTN. I can able to get downlink data on the node side.
There is no other changes on the ttn-abp.ino side

Gateway
Using RAK’s Gateway OS as it is and configured the lorawan server with external chirpstack server given by RAK.
– Done the gateway ID setup on the global_conf.json
– No other changes on global_conf.json file. Tx_enable: false in radio_1 and frequency is 868500000

On the Chirpstack side
– Existing service profile used. Nothing changed.


– Existing device profile used
– Class A with ABP, RX1 Delay : 5, RX1 Data rate off-set : 0, RX2 Datarate : 0, RX2 Chennal frequency : 869525000 & factory preset frequency : 868100000, 868300000, 868500000, 867100000, 867300000, 867500000, 867700000, 867900000 (No idea what should I use).

– Class B / C Disabled
– Application created
– Device created and Device address, Network session key & Application session key added on the ttn-abp.ino progam.

Output
Uplink::

  • The sample hello world received on the server side as uplink data sent by node.
  • The log confirms the data transfers on the gateway side by using, tcpdump -AUq port 1700
  • So far is working fine

Downlink ::
– Create a downlink queue from Device window. Gave, Port : 4, Confirmed Downlink enabled and give “aGk=” as base64 encoded data.
– The given downlink queue listed. The gateway receives the downlink frames after the uplink is done on the node side. The txpk confirm the data transfer from server to gateway.
– Recevied an “ack” frame once the downlink queue is clear. It contains as follows,

applicationID:“21”
applicationName:“app”
deviceName:“test2”
devEUI:“af9df28984d0b71a”
acknowledged:false
fCnt:73
tags:

The gateway log is,

.{“txpk”:{“imme”:true,“rfch”:0,“powe”:27,“ant”:0,“brd”:0,“freq”:869.525,“modu”:“LORA”,“datr”:“SF12BW125”,“codr”:“4/5”,“ipol”:true,“size”:22,“data”:“oB4F6QGHSQADAAcAAQgBBM9sLGaltg==”}} 17:14:01.128266 IP rak-gateway.58644 > 209.250.251.9.vultr.com.1700: UDP, length 12

No data is received on the node side. Any kind of input is appreciated to achieve the downlink on EU868.

TIA

Sorry, we just found some bugs in the downlink in ABP mode, and we are working hard to solve it.

@ZhuQI Can you please elaborate more about the bug in detail?. I will also try from my side.
Also like to know how about OTA mode for downlink with chirpstack?.

FYI, @Fomi

TIA

@asprakash

The server http://209.250.251.9:8080 has no bugs, which is because my test method is wrong.

I retested the abp mode on the http://209.250.251.9:8080 server to send data to the node(my node model is RAK811),Whether in class A or class C, the node can receive the data sent by the server.

I show you my device-profile configuration.


In class A mode, I added a piece of downstream data to the web page.

When the node sends an uplink data, it will receive the data we just added on the page
01

After the node sends data again, click the refresh button, and the downlink data in the queue will disappear.
02

Hi @ZhuQI Thanks for all your support. Finally, I tasted the downlink data transmission after I replicate the same configuration on my side and now I can able to get the downlink data on my node.

However, When I enable Class C along with this configuration, the downlink is not working. The lorawan frame log is all below, it looks like it uses 0 frequency for RX2 as per your configuration and I also changed the frequency into 89525000. Still not working for class C. May I know what frequency & DR we used for RX2/Class C?.

Class C when we use RX2 frequency is 0 :

Class C when we use RX2 frequency is 869525000

TIA

I modified the device-profile configuration.
The rak811 node I use can successfully receive data sent by the server in class c mode.

You can follow these steps to try:
1.Modify the values of uplink frame-counter and downlink frame-counter in the device to 0.


2.The rak811 node can view some configurations through the at command. The following figure is the relevant information of rak811.
I don’t know if your node has related instructions to query information. The rak811 node needs to be powered on again and set DownlinkCounter to 0.
2020-01-01 10:30:15
3.The node sends data to confirm that the server has received the data.
4.After the server receives at least one piece of data, it can send the data to the node.

@ZhuQI Thanks for further iputs for Class C method. I done the following and not receiving any downlink datas when using Class C.

  1. Configured Device Profile, RX2 Frequency with 869525000
  2. Under CLASS C tab, I enabled “Device support Class C” option
  3. Then under the ACTIVATION option in Applications, I set Uplink Frame counter & Downlink Frame counter is 0.
    Now I can able to receive the uplink datas. Once I create a downlink queue, I am not able to receive any datas on the node side.
    However, I can sense that the downlink queue list is processed & cleared immediately.

BTW, I am using Arduino Uno as my end device. It dont have such at command configuration provisions.

TIA

Sorry I don’t have any Arduino nodes, so I can’t help you with Arduino nodes.

@ZhuQI I understand your limitation. Thanks for your continuous support.
Can you please cross check whether I need any other modification need to be done?. Also like to know if I want to change anything on the gateway side for class C?.

TIA.

We are glad you chose RAK products. :blush:
The gateway does not need to make any changes in Class C mode.
The modification is mainly on the server and node configurations.

Dear ZhuQI, seems to me that you understand those downlink very good. I’ve used all that info from this discussion for programming by Web UI downlink. But my Chripstack not sending data correctly - it use port FPort:0 and not port that I’ve programming and not loading any data. Sending downlink just as test MAC message. I used also API to create uplink and i have the same results.
I created topic : Downlink use only FPort:0 and no payload on packet
BUt nobody answering – can I directly your help for this ? Any idea ?
Please, I need help.