RAK10701-P Field Tester unable to receive downlink

Hi everyone, I have been trying to follow the same guide to set up the Field Tester but also with no success.

I’m getting stuck right at the Payload Decoder which returns me: json: unsupported value: NaN

Could someone give me a hand here?

Is this the payloader from our Github repo ?
If not, please try the one from the repo.

And how are you testing?
If you push the Try Decoder button, you have to enter a payload first in the field that says Payload

Hi Beegee, thanks for your reply!
In the meanwhile I have reconfigured everything and I can see the UPLINK and DOWNLINK requests as in screenshots.


However the field tester is not detecting any GW nor providing any useful information. Possibly it’s a different issue? Any idea?

Thanks for the support, it’s my first time dealing with these equipments and this thread was really useful!

The two messages in your screenshots are the Join request and Join accept messages.
Do you see any other messages after that?

Do you see any messages of the Device in Datacake in the Debug tab?

Unfortunately the answer is simple: I do not.
What am I missing?

Did you add Datacake as integration in the Chirpstack Server?

Did you define the the URL of the Chirpstack server in Datacake => Device => Configuration => Network Server? And did you enter the API Key that you created in Chirpstack?

Apologies for the delay, I got sidetracked with other work things.

Yes, everything is configured as you are saying.
I configured the Chirpstack URL as: http://server-hostname:8080

Now I’m getting the following error code:

At least now I’m getting a response from Chirpstack… although its a 404 lol

Any suggestion?

Where did you install Chirpstack?
Can it be accessed from WAN? Are the ports open?

I have a Chirpstack local in my home network, Datacake cannot send data to it, because I cannot open the ports from LAN to WAN.
My second Chirpstack is on a VPN and the ports are open. Datacake can communicate with it without problems.

Hello @beegee

I have put together simple python script, which runs as a service on Chirpstack server itself and acts like a “loopback”. It listens to the mqtt topic of corresponding ApplicationID.
Once uplink is detected, it processes/calculates the required fields (MIN/MAX RSSI, Number of Gateways, MIN/MAX distance using Harvesine formula) and publishes back the payload to the same devEui. So if you have multiple nodes of same type under same application it will work as well.

I have done several rough tests (device restart, server restart, disconnecting GWs…), it looks fine.
You can find the script here. I have added some exception handling, but it can be optimized further for sure.

On bright side, I do not depend on 3rd party anymore and not restricted on the number of uplinks I can send per day.

I got 2 questions:

  1. If I move out of coverage, screen still shows last data. This is good to have a “freeze” frame of last readings. But would be perfect if there was a last received timestamp available in the screen somewere in small font.
  2. what is the purpose of the initial object buf[0] = 1; ? it is always set as “1”

I’ve done something similar, in C, a science experiment still, but in production on my network:

danak6jq/rftd: RAK10701 Field Tester daemon for ChirpStack v3/v4 (github.com)

I really just need to package it as a service so systemd can start it automatically.

One benefit of running directly on the CS server is very low latency. I’ve found the Datacake back-end takes long enough the Ack DL to the Field Tester doesn’t get the actual update until the next ping. With the server on ChirpStack, the Ack DL has the update every time.

1 Like

Nice work @sergi_jini

For your questions

  1. There should be a notification at the top of the screen if the data is outdated.
    image

  2. I guess you are talking about the payload sent from the back-end to the RAK10701. The first byte should be a counter going up with every downlink to the device. I skipped that feature in Datacake.

Thanks. Noted

Regarding downlink counter, how important is it? Is it needed for LoRaWAN, or only additional info for the end node?

Btw any plans to include more parameters on the screen of RAK10701? F.eg DL/UL frequency and SF

@sergi_jini, the script sounds really promising, I don’t want to rely on datacake. The repo seems to be private or deleted, could you provide the script again please?

Hello Ake, I made it public now. Thanks for noticing, I did not realize it was private.
Good luck. I am still using it btw for my coverage tests.

1 Like

Hi sir, i am using RAK10701-P Field tester. here i am facing one issue in the device. i able to see the No of Gateways and also lat long and Rssi and SNR value in the device display. but this device is not showing the Min and max distance. how to check the distance in the device.

Welcome to the forum @bharath

What Network Server are you using? Helium, TheThingsNetwork or Chirpstack?
Do you use one of the back-ends shown in our documentation or did you write your own backend?

What is shown as min and max distance?

Are you using the device outdoors and wait until the device has acquired a location or are you using the button to force a packet transmission?\

Sir, i have use the Things Network but it only shows min and max distance is 0, and also i try in Chripstack also it show only min and max distance 250m only. i have see this data in DataCake. Here device display also not showing any distance data. i have attached the image below. And i have go to some distance from the gateway and wait some times for data transmission. everything is ok but the distance is not shown in the device.

Does the gateway have a GPS or is the gateway setup to report a fake location (we can do this on our WisGate Edge gateways0.
If the gateway does not report its location to TTN, the backend cannot calculate distances.

If that is the case, you need to setup the gateway location in TTN:
Open your gateway in TTN, on the left side you see Change location settings. Click it.

On the next screen set a fake location for the gateway

  • Select Set location manually
  • Enter Latitude, Longitude and Altitude of the location
  • Save changes

yes sir it is work, but the minimum and maximum value is showing 250m or 750m or 1000m. but the actual distance is not matched minimum or maximum distance in the device. Actually this minimum and maximum values are always same. i have attached the image below.

The distance is displayed in 250m steps, there is no better accuracy.
If you have only one gateway, the min and max distance will be always the same.