RAK11300 packet loss Chirpstack

good day
we use RAK11300 on our own ChirpStack server, and observe packet loss.
we use only 3 main frequencies EU868
Device profile is configured in accordance with your recommendations (also tried version 1.0.2 Rev. B)

packages disappear randomly, sometimes 2-5 pieces, there is no dependence.
signal strength is excellent
other end devices work without problems

need help, any ideas?)

All details shown below

How strong?

If too strong, you could be seeing overload causing distorted, uninterperably signals.

If you look at the gateway’s raw logs, do you see anything at the time of the expected transmissions, such as CRC error packets?

Or other packets, which might indicate an on-air collision?

1 Like

Hi @mykhalych90 , you only enabled the default joining 0,1,2 channels that’s why you can only see uplink in 868.1, 868.3 an 868.5 Mhz. You can try to include other channels. Probably make it 0,1,2,3,4,5,6,7.

These are those EU868 frequencies.

Hi @mykhalych90
How is Chirpstack EU868 configured? By default in EU868 it will allow join on the channels 0, 1 and 2, but then enable the other 5 channels automatically.
What is the Extra Channel Configuration in /chirpstack-network-server.toml?

Hi @beegee , there are no ‘Extra channel configuration’ section in our Chirpstack configuration.
We use only 868.1, 868.3 an 868.5 Mhz

Hi @carlrowan
Yes, that’s right, we deliberately limited ourselves to only three frequencies. We can only work for them (868.1, 868.3 an 868.5 Mhz).

Hi @cstratton
No, the Gateway is at a distance from the end device (levels ~ rssi: -91, loRaSNR: 7.8). But we tried to turn on the Gateway and nearby - the result is the same.

As for the logs on the Gateway , I will answer in the near future.We’ll monitor this issue.

I also think that the problem is frequency.
Tell me, please, who generates the list of frequencies for the end device during OTAA authorization? Network Server or Gateway?

The gateway does nothing than receiving and sending, it is just a packet forwarder.

On the node side, it starts with the 3 join channels (0,1,2) and then it is up to the lorawan server if it enables additional channels or not.

I will have to dig out my EU868 gateway to test, but my Chirpstack server is busy in some long-time tests on AS923-3.
Let me check if I can find another RPi to setup a second Chirpstack server.

@beegee , thank you

By the way, the gateways we use RAK7240 and RAK7249

and one more question, could there be a reason in setting up Arduino libraries for WisBlock? perhaps it does not correctly accept the list of frequencies or do not accept it at all?

I just looked into the LoRaWAN library and by default only 3 channels are open and max of 5 channels can be added by the LNS.


It looks all ok.

1 Like

It is from “LoRaWan-Arduino.h” https://github.com/beegee-tokyo/SX126x-Arduino/?

Perhaps there is a method that can be called to output to the UART the frequency at which WisBlock transmits?

Not in an easy way. You will have to dig into the sources of the SX126x-Arduino library and put some debug output there.

The function that sets the frequency is in /radio/sx126x/sx126x.cpp line 440

void SX126xSetRfFrequency(uint32_t frequency)
{
	uint8_t buf[4];
	uint32_t freq = 0;

	if (ImageCalibrated == false)
	{
		SX126xCalibrateImage(frequency);
		ImageCalibrated = true;
	}

	freq = (uint32_t)((double)frequency / (double)FREQ_STEP);
	buf[0] = (uint8_t)((freq >> 24) & 0xFF);
	buf[1] = (uint8_t)((freq >> 16) & 0xFF);
	buf[2] = (uint8_t)((freq >> 8) & 0xFF);
	buf[3] = (uint8_t)(freq & 0xFF);
	SX126xWriteCommand(RADIO_SET_RFFREQUENCY, buf, 4);
}

A Serial.print before the last command in the function will print the used frequency.

Ok, have now a setup with EU868 and Chirpstack.

How did you limit the gateway to only three channels? Chirpstack default settings is 3 join channels and 5 additional channels.

we did not specify Extra channels in the settings and set only 3 channels in Gateway profile


we have added a frequency output.
All the same, yes, the problem is in the frequency. The WisBlock sends on all frequencies in the range EU868, but should only send on our 868.1, 868.3 an 868.5 Mhz
.
And as you can see, we only see packets at our frequencies.

ps. On the network server, the score FCnt from 0, and on the WisBlock from 1.

No, now we use only examples of Arduino library for RAK11300.

:rofl:
Seems ever since I released the library no one ever tried to work with a limited number of channels on EU868. In default configuration most LNS enable the 5 additional channels via Cflist.

Now while desperately going through the library I found a very old setting (originally from Semtech), that always enables all 8 channels on EU868.

Quick test
inside the SX126x-Arduino library folder go to src/mac
open LoRaMacHelper.cpp
goto line 45
change #define USE_SEMTECH_DEFAULT_CHANNEL_LINEUP 1
to #define USE_SEMTECH_DEFAULT_CHANNEL_LINEUP 0

After that, the node will use only the first three default channels, unless the LNS enables the additional channels.
Tested against Chirpstack with only 3 channels enabled => using only 3 channels
Tested against TTN V3, which enables additional 5 channels after join => using all 8 channels

Want to do some more tests, but it seems that was the problem. Will push a new version of the SX126x-Arduino library by end of the week.

1 Like

thanks a lot!
made this fix. all OK!
Looking forward to the updated library!