Measure RF Noise for LoRa networks (900 Mhz)

Hello everyone!

My question is somewhat related to: Is it possible to use a SW defined radio tuned to 868 MHz to detect LoRa Node radio transmissions?

But I am having some troubles with a LoRa deployment using Laird RG1XX Gateways and LCOM antennas. If anyone here might have some experience tracking down RF noise issues, and could lend me a hand with some advice, I would greatly appreciate it!

Basically, I have 2 locations where antennas are mounted: both are placed on antenna towers between 30 and 40 meters tall (I’m attaching pictures at the end of the post). I am using DR0 for the uplink on the nodes to achieve the longest possible distance, and I am using channels 8 through 15 in the 900 MHz range (that is, frequencies from 903.9 to 905.5 MHz). The nodes are Pycom LoPy4 with 900 MHz antennas.

  1. At location number 1, I have an LCOM 8 dBi omnidirectional antenna at a height of about 32 meters. It is not a densely populated area, mostly agriculture in the surroundings. But lots of bushes and trees that obstruct LOS on occasion. I’ve been able to achieve a good connection with nodes up to 10 km, and sometimes even up to 20-25 km in best conditions.
  2. At location number 2 I have the same setup, but the antenna is mounted slightly higher, at 40 meters. However, my connection with this GW has been very poor. At best, I’ve achieved a 5 km connection with nodes, nothing more. I have attemped many things: replacing the coax cable between GW and antenna, changing the GW, changing the antenna, all have proven to be of no help.

So, I am now thinking it’s related to RF noise around the antenna. I attempted to measure this with an SDR. I did not climb the tower, instead did the measurements on the groung at both locations. I obtained some waterfall plots. On first inspection, it would seem that location 2 has slightly more noise than location 1. But I think it’s not so much noise as to be conclusive proof (?) Both waterfalls show about 50 seconds of data.

Location 1
tx_antena_iman
Location 2
tx_antena_iman

So this would mean one of 2 things:

  1. RF Noise at location 2 is not the culprit
  2. The SDR I used (Nooelec NESDR Mini 2 with a 900 MHz LoRa antenna) has too high a noise floor, and cannot detect the noise the GW at location 2 actually hearing

Do you have any ideas on how to measure RF noise for LoRa networks more reliably, given the very low noise floor they operate at? Has something similar happened to any of you?

Thank you all in advance.

Best,

Dan

P.S. Here are pictures of the setup at both locations.

Location 1
setup
Note the blue omnidirectional antennas to the right are also at 900 MHz. However, at location 1 we have had no significant trouble or interferance.

Location 2
5a5fc761-aa04-4e72-8f4d-d43395cc7830

More to the point, LoRa operates well below the ‘noise floor’, not sure what equipment you could use to actually measure noise thats well below the noise floor of the measuring equipment ?

Swapping the gateways around might be one way of testing, but that might not be practical.

What you really need is a controlled way of comparing the reception of LoRa signals at each location and the best way to do that would be to use LoRa devices. Think testing the location, not the actual gateway.

Where in the World are you ?

1 Like

Its not clear if your tower locations are shared with other transmitters, if they are, a cheap SDR is likely to perform poorly in the vicinity as their front ends are very easily overwhelmed.

The multi-channel receiver in a LoRaWAN gateway is not able to receive anything but LoRa or FSK, and so cannot really measure channel energy.

It happens though that there are areas of the world where there is a regulatory requirement to check for existing usage of a channel before transmitting on it. Gateways usable in those areas add an additional node-class radio which is used to check the channel RSSI before transmitting on it. If you had such a “Listen Before Talk” (LBT) capable gateway, you could presumably come up with a software solution to scan the band, if very clever in between transmissions, if less so then as an alternate mode when not trying to be a gateway at all.

You could also just use a LoRa node with a firmware for that purpose, or even some non-LoRa sub-ghz radio. Semtech of course would prefer to use their own part and familiar register set for this task in their gateway reference design, even if it doesn’t strictly have to be LoRa-capable.

1 Like

Are both antennas about the same distance from the tower? It looks like the one on gateway two is closer to the tower but difficult to see if the tower might be within the near field) And are the gateways wired the same way? (No ground loops introducing noise?)

1 Like

I have one comment and one question:

Comment This is not true. Noting can receive below the noise floor. You can’t change physics. The reason why we say that LoRa is receiving below the noise floor is that we compare the RSSI of the LoRa signal, which has very small bandwidth, with a signal bandwidth of 125 kHz where the noise floor is higher compared to the noise floor of the LoRa signal. We are actually comparing apples with pears and express the difference in bananas.

Question What are the frequencies of all the transmitters in both masts?

  1. If they are close to the operating band of the LoRaWAN gateway it may suffer from densification or blocking.
  2. The mast seems very rusty to me. Rust may cause Passive InterModulation (PIM) and the resulting signal might be on-channel in the LoRaWAN band resulting in an interfering signal.

To detect the effect of both phenomena you will have to climb into the mast with your SDR to observe it.

2 Likes

It occurs to me that one test which might be worth doing is to take a node instrumented to measure downlink signal power and see what you get at comparable distances from the two gateways.

If it’s an antenna problem, there’s a good chance you’d see poor transmit performance, too.

But if it’s an interference or damaged receiver issue, then you’d likely do fine on transmit but poorly only on receive.

Similarly, the best RSSI you can get transmitting from a nearby node is likely to be impacted by antenna issues, but not as much by interference since the desired signal would be relatively stronger than that.

2 Likes

Hey!

Thanks so much for your response. Really, it’s been a tough problem to crack, mainly because as long as the cause is not clear, I am sort of in the blind, trying to solve something unseen.

To answer your questions and give further insight:

I am in Guatemala, using the US915 LoRa v1.0.2 spec.

We have in fact measured the RSSI and SNR for packets arriving at both locations. Here is a small chart containing some measurements we have made. Note that there are variations due to node location, tree coverage, so maybe the average values are more indicative. I am also attaching some heatmaps I have generated. The color of the dots achieves full strength at SNR values above -5, and they become dimmer as the SNR varies between [-15, -5).

SNR RSSI Locations 1 and 2

Heatmap for Location 1
Location 1 Heatmap

Heatmap for Location 2
Location 2 Heatmap

Note that Location 2 has significantly weaker signals even for shorter distances. For distances of ~2 km, SNR is around -4. While Location 1 has an SNR of -2 for distances of up to ~7.5 km. Big difference!

Best,

Dan

P.S. @cslorabox @pe1mew @kersing might find this interesting as well.

Hey! Yes, good question…

The antennas are about 60 cm separated from the mast, in both locations. The main difference, however, is that in Location 1 the GW is mounted directly on the mast, while in Location 2 the GW is mounted right next to the antenna. Could this affect somehow, that the GW is nearer to the antenna? It seems like a long shot to me… (?) Here is another picture of Location 2:

f0f79106-6894-41db-bb72-d0cadd1e8e7f

Best wishes,

Dan

Hello!

Thank you for the explanation regarding the meaning of ‘below the noise floor’. To answer your question, as well as @cslorabox 's:

Yes, the tower locations are shared with other transmitters. However, for location 2, those transmitters are not operating, currently. For location 1, they operate on occasion. Here’s an idea of the transmitters located on each tower:

  1. On location 1, there are 3 antennas that transmit RTK information. The 2 shown in the photo of my original post (2 blue antennas on the right) operate somewhere around 900 MHz (exact frequency is unknown at the moment, will look into this). There is also a smaller antenna that is out of sight in the picture I posted, lower down the mast, operating somewhere around ~400 MHz.
  2. On location 2, there is only one additional antenna, it is directly opposite to our antenna (same height). Same blue type as in Location 1. Should operate at 900 MHz, but is currently powered off.

Here’s another picture of location 1 (the good one). Note this shows 3 directional antennas, which is an improvement we made to this location (we ended up removing the omni antenna here).

new setup

Thank you so much for your support.

Best wishes,

Dan

Not my use of ‘noise floor’.

As no doubt you realise, when talking LoRa, say SF12, then we know that the signal to noise ratio is up to -20dBm, i.e. the signal is 20dB below the noise level as seen by the LoRa device. Most people would say that the noise level is the noise floor, in the context of LoRa.

1 Like

But you have different setups, antennas and gateways, so comparisions may no mean much.

What I would do is to use a transmitter and receiver pair, as a simple as Arduino Pro Minis with LoRa devices, and use the devices to carry out a link test at each location, as in measuring the actuall failure point as in how much power is needed for the link to work.

If there really is a difference in the noise level (as in interference) at the locations you would be directly able to see the difference in link performance, the tests are not difficult.

1 Like

The problem is that such usage implies a degree of “magic” resulting from overlooking what is actually going on.

If I had, say, an AM receiver with 6 KHz IF filter, there’d be a certain amount of noise in the passband, eg, starting with -174 dBm/Hz, adding 10log6000 yields -136 dBm and add in another 10 dB for the receiver imperfections known as “noise figure” - so there’s a noise power of -126 dBm.

But now if I decide I’m going to use morse code, I can switch in a 600 Hz filter, and have 10dB less noise in that narrower bandwidth -136 dBm.

If I have distant signal that’s actually delivering -130 dBm to my receiver, is that above the noise or below?

If I looked at it in terms of the AM receiver, it would be below the noise floor. But if I look at it in terms of the the receiver I would actually use, then it’s above the noise floor.

That’s all very traditional as it deals strictly in terms of frequency.

But the situation isn’t ultimately different with LoRa, it is just that the differentiation of signal from noise is not made on the basis of a static bandwidth, but rather on recognizing what looks like a LoRa chirp.

Evaluate the noise at a LoRa receiver as if it were a type of a receiver it is not - which is to say ignore everything after the IF filter - and sure, it receives signals below the noise floor.

But evaluate it in terms of what it is actually looking at, and no - it only receives signals that are above the noise level of things that look like signal but are not.

Something like Sigfox also receives signals which are below the noise power at the IF filter of a LoRa receiver tuned to the same frequency; but it does that by applying a far narrower IF - eg not 125 KHz, but something well under a KHz - that’s at least a 20 dB reduction in noise, too. Of course it does create the challenging of finding a signal that is narrower than the error of the transmitter frequency source, just as LoRa has the challenge of needing to see things that zig and zag, but not knowing the schedule on which they will start to do so…

The redundancy of 4/5 coding could also, if one cared to do the math, be expressed in dB.

There’s a definitely a cleverness in these systems, in that they manage to change what is seen by the decoding part of the receiver in terms noise to something other than that of a static fixed bandwidth. But they only change the style of the game, not its rules - signal is still signal, not-signal is still noise, and the ratio between them is math.

(In fairness, the “morse code” example is also overlooking something, which is the final filtering is the brain of the skilled operator which can allegedly also manage to receive things at or below the noise floor of what escapes the narrow IF filter, and then go back and apply error correction over missing symbols)

3 Likes

Hey, everyone!

So I went up the tower on Location 2 last friday and connected the SDR directly to the LCOM 8 dBi antenna. I believe I got some interesting results, as lots of short, wideband bursts were observed in the [903.9, 905.5] MHz range (which corresponds to the LoRa uplink channels we are using).

What do you guys think of this? Enough to conclude noise is the issue? Or could it be something faulty in the measurement setup (?) (Which was the SDR connected to the antenna via a 1 meter, RG58 coax cable, and the SDR connected via an OTG cable to an Android Device, using the RF Analyzer app)

Screenshot_20200807-141536_RF Analyzer

Also,

I was wondering about this… Because, even though, yes, they are 2 separate towers, we have exactly the same brands and models of equipment in both (that is, same brand/type of GW, antenna and coax cable). So I’d think that results are somewhat comparable, are they not?

Now, regarding this:

It is something I can definitely try. In the meantime, what do you think of the noise shown in the waterfall plots above?

Thanks again.

Best wishes,

Dan