38dB of missing RX signal - SX1276

We have been using SX1276 on both TX and RX side of a solution for a long time with marginal performance. Luckily for our application, we only need about 300m of range - but we’re having serious issues whenever something is suboptimal (ex: local interference source, occlusions, multipath, etc) due to the extreme lack of margin.

Using the chip in LoRa mode (BW 250K, codingRate 8, SF 8, preamble length 6, syncword 18), 20dBm TX, max gain (1) on RX with LNABoost turned on. We’ve also tried ACG on/off, LNABoost off and various TX power configs with no benefit. Also have tried FHSS on and off without benefit. When RX signal becomes marginal, the reported RSSI is about -123 to -126dB, which lines up pretty much exactly with the datasheet specified LoRa noise floor for this chip. However - we expect about 49dB more signal at those ranges based on free space loss.

TX side power is confirmed via spectrum analyzer to be hitting the datasheet-specified TX power less the losses we expect.

RX-side antenna power is confirmed via spectrum analyzer to be receiving the TX power less free-space losses and antenna / coax losses that we expect.

We can trace an appropriate amount of RX power (less expected and small losses) all the way through the external front-end (RF switch is correctly configured) and all the way into the RFIN pin on the SX1276 chip. When we measure -37dBm at the RFIN pin with the spectrum analyzer, the chip itself is reporting -75dBm. Solder joints look good. This is a HUGE amount of missing power.

Switching the chip from ACG (auto gain selects 1) to fixed gain of 1 results in the chip reporting -63dBm (spectrum analyzer still says -37dBm), but the practical range does not improve and there is still 26dB of unexplained loss.

Theoretically, we’re expecting a range of 5km+ with these settings but aren’t achieving 500m pure line-of-sight with any reliability. Something is really wrong and we’ve had five different engineers scour the datasheet + code + schematics without any improvements or revalations. A coworker previously (last year) made this post in case it’s helpful context as well.

Bumping this. Is it possible to get support from Semtech here?

I had a similar problem, the fault was in the LNA of the SX1268 chip. Also your preamble is too short. I had a stable connection with preamble 10.

You also need to perform your own RSSI software calibration. The noise floor for a 250 kHz bandwidth is -119.90 dBm + about 5 dB of LNA noise. The minimum RSSI value should be around -114 on a 50 ohm line with a 250 kHz bandwidth. What is your RSSI value with a 50 ohm resistive load connected to the antenna input?

I have been experiencing the same issues as @davis with the SX1276 chip.

My receiver RSSI noise floor is at -117 dBm with a 125 kHz bandwidth, which matches the theoretical values + 5 dB LNA pretty well.

I also tried connecting the transmitter (+17 dBm) and receiver with a 50 dB attenuator and got a -56 dBm RSSI instead of the expected -33 dBm. 23 dB is not a difference that could be explained by cable loss at < 1 GHz.

@go.valeriy if RSSI calibration was the problem, we wouldn’t experience massive range issues, also the RX noise floor would likely be off as well.

There must be some other problem, such as a faulty LNA… @go.valeriy, could you provide more information about your LNA issue?

@dxmaster73 - thanks for the reply, this sounds pretty much identical to our problem, and we’ve seen exactly the same behavior when TX is connected to RX through an attenuator. When we connect TX to a spectrum analyzer through the same attenuator setup, we get the expected input power (instead of the 23-38dB reduced value SX1276 reports) which further confirms that it’s not cable loss or something wrong with the TX setup.

I will also note that we have observed this on EVERY SX1276 module we’ve ever tested (from 2 different vendors and including devkits), so it can’t be explained as a one-off hardware failure or a design flaw with a single vendor’s module.

@go.valeriy I am also curious to hear more about your LNA issue. Regarding a 50-ohm terminator on the RX side, I believe we see something like -126dBm unless there is a transmitter right nearby.

In my case, the problem in the LNA was due to a physical malfunction (a breakdown in the chip). This malfunction was in four radio modules.

I’m guessing AGC (IF AGC) can’t be turned off completely, and it does make a difference. For more accuracy, you should try to make a measurement in the area from -80 dBm to the noise floor. My reading difference between RSSI and spectrum analyzer was about 1-2 dBi in the range from -90 to -128. Also, the spectrum analyzer must be set to the same bandwidth as the LORA.

Your minimum RSSI value at 250 kHz bandwidth should be around -114 dBi with a 50 ohm terminator connected on the RX side. Perform RSSI calibration.

The datasheet says “The RSSI provides a measure of the incoming signal power at RF input port.” Also, the LNA gain does not occur in the conversion equations for RSSI. This means, that the RSSI is already compensated for LNA gain. Or did I miss something?

Disable the AGC and see how the RSSI changes as the LNA gain changes from G1 to G6. The RSSI measurement is made by the ADC after the LNA and the mixer. The RSSI value includes all noise.
RSSI requires calibration on a case-by-case basis.

I made another discovery the other day:

Screenshot 2023-02-24 at 16.42.43

I constantly measured the RSSI at the receiver. If a package is transmitted, we can see the expected RSSI levels (-33 dBm, a few meters indoor) in the constant RSSI measurements, but a significantly lower RSSI level as packet RSSI for the decoded package (value in the JSON string).

This also makes RSSI calibration being the problem less likely. And still, both @davis and I are having range issues, that likely wouldn’t occur if it was just the numeric value being wrong.

Test with different devices. If possible, test the SX1276 module with different devices to rule out the possibility of a specific device malfunction. This can help identify whether the problem lies with the module itself or the surrounding setup.

@edwardhunter9428 - yes, have tested with many many devices of our own as well as devkits from multiple different vendors.

@dxmaster73 - any chance you were able to find some kind of resolution here? Any chance you can share what your LoRa configuration settings are?

Upon re-reading the datasheet I think there is a tiny chance that some of it could be related to RXChain Calibration - but not sure.

Updating this thread with our latest findings as things evolve.

TL;DR: We found explanations for 10dB of our originally stated 38dB of missing signal. 20-28dB remains missing.

Connecting TX to the spectrum analyzer (and measuring with same bandwidth as @go.valeriy requested) and we measure only 0.5dBm less than expected (19.5 vs 20dBm), which is easily explained by coax + connectors. Adding attenuators and re-measuring with the spectrum analyzer, we confirmed accuracy of the attenuators.

Then connecting the attenuated TX directly to our RX device (placed inside a faraday cage) yielded measurements 28dB lower with 36dB of attenuation. With 96dB of attenuation, RSSI was 19dB lower than expected. With 110dB of attenuation, RSSI was 20dB lower than expected. The RX and TX devices are identical, so we know we don’t have some crazy issue with the layout. Swapping multiple boards shows identical results. This aligns us closely with @dxmaster73 's results, he reported 23dB missing and we’ve now seen 19-28dB.

Things we’ve confirmed/discovered:

  • AGC had impacts on RSSI relative to fixed gains even if we manually selected the same gain that AGC was selecting. AGC gain 1 resulted in 6-12dB worse (lower) RSSI than manually-set G1.
  • RSSI is not LNA gain invariant, at G1 (highest) we saw 2 to 5dB worse/lower RSSI than at G6 (lowest gain).
  • RSSI reporting linearity is poor and perhaps ~8dB can be explained by RSSI reporting low at higher RX power levels, as @go.valeriy alluded to. Nonetheless, we can attenuate by 118dB (expected RSSI -98dBm) and measure RSSI -124dBm (26dB missing).
  • Performing the Receiver Chain / IMR mixer calibration appears to have maybe made a slight improvement to RSSI accuracy (which Semtech alleges it should), but single-digit dB at most.

Overall: it seems like the biggest clue we have is that the constant RSSI measurements are close to right, but the packet RSSI for decoded messages is WAY lower. It would be great to understand this if anyone has insights.